python 自主学习笔记

文章目录

前言

最近在学halcon,机器视觉,越学越发现,python是无法避免的语言。因为python用途实在是太广了。python在计算机的地位和英语在世界语言的地位一样,是独一档的。无论是什么程序员,还是其它职业的工作人员,都可以去学一下Python。

相关教程

Python 3 教程|菜鸟教程

模板字符串

Python和C#,JavaScirpt,都推出了各自的模板字符串。这里要点名一下Java,Java的模板字符串出现的太晚了。Java 21才推出。其实好的设计语言都是互通的。

JavaScript

javascript 复制代码
var name = '小王'
var age = 16
var str = `我是${小王},今年${age}岁`

C#

csharp 复制代码
string name = "小王";
int age = 16;
string str = $"我是{小王},今年{age}岁"

Python

python 中的 f 字符串及其常见用法

python 复制代码
name = '小王'
age = 16
print(f'我叫{name},age={16}')

临时变量

说到临时变量,C#有匿名对象和元组,元组是最佳的临时变量。C#也有两种元组,Tuple和ValueTuple。元组在我的这里的评价的是临时变量。Python具有不可变性的常量。但是我觉得不可变性的用处不大。

C#的ValueTuple

C#就不展开说明了,之前做过了

C# 元祖,最佳的临时变量

Python

Python的元组需要引入命名空间,而且需要函数创建。这个就不够优雅了。

python 复制代码
# 需要额外引入命名空间
from collections import namedtuple
# 需要保证Tuple命名和入参的名称一致
Mytuple = namedtuple("Mytuple",['x','y'])
p1 = Mytuple(x = 1,y =2)
print(p1.x,p1.y)

字典

感觉我的思路是错误的,Python里面的元组就是用来返回静态常量的,Python里面的字典倒是可以实现我想要的参数的功能

自定义模块化封装的文件路径问题

模块之间的互相引用是必须的,因为复杂的项目一定是封装成多个文件,这样才具有复用性,解耦性。

在其它语言中,我们都是先创建一个解决方案,由解决方案去管理整个文件路径,又有一个命名空间的概念,命名空间就是每个类的住址的唯一门牌号,这样才能保证我们的类的引用不会出错

【Python】Python 包 ② ( 自定义 Python 包 | 导入并调用自定义 Python 包 | __init__.py 定义 __all__ 变量 )
python的构建工具setup.py的方法使用示例
python 文件夹py文件相互引用

但是上面的方法都是有问题的

我找了半天,我终于了解决的方案。

python3:sys.path.append(".../")就是在挖坑

在下面的评论区里面找到了答案

解决方案

比如我的文件路径结构

跨文件的调用是非常麻烦的,但是我们可以重定向到文件根路径

test2.py调用test1.py

python 复制代码
import sys,os
# 选择当前文件路径
os.chdir(os.path.dirname(__file__))
# 当前文件路径的上一层路径
sys.path.append("../")

from folder1 import test1

如果是test4.py,两层文件路径,则需要再往上一层

test4.py 调用test1.py

python 复制代码
import sys,os
# 选择当前文件路径
os.chdir(os.path.dirname(__file__))
# 当前文件路径的上两层路径
sys.path.append("../../")

from folder1 import test1

虽然一般没有两层文件夹,但是我得有解决的方案

我测试过,跟文件调用也没有任何问题

python 复制代码
# 完全没有任何问题
from folder3.folder4 import test4

暂时结束

我后面再研究一下Python的面向对象,我就可以彻底用python写复杂项目了。后面就是常用工具类的使用了,比如json,log,网络通讯等功能。

相关推荐
Cachel wood4 分钟前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑7 分钟前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
終不似少年遊*10 分钟前
pyecharts
python·信息可视化·数据分析·学习笔记·pyecharts·使用技巧
Python之栈11 分钟前
【无标题】
数据库·python·mysql
袁袁袁袁满27 分钟前
100天精通Python(爬虫篇)——第113天:‌爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python·网络爬虫·爬虫实战·urllib·urllib模块教程
老大白菜1 小时前
Python 爬虫技术指南
python
QQ同步助手1 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
流浪的小新1 小时前
【AI】人工智能、LLM学习资源汇总
人工智能·学习
A懿轩A2 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
古希腊掌管学习的神2 小时前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵