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,网络通讯等功能。

相关推荐
liferecords2 分钟前
阅读笔记:ExtractBench: A Benchmark for Schema-Guided Enterprise Document Extraction
笔记
fengci.9 分钟前
Microweber CMS 未授权路径穿越漏洞(CVE-2026-65694)
android·开发语言·前端·学习·php
MC皮蛋侠客14 分钟前
SQLAlchemy 系列(八):AsyncIO、并发与 Web 生命周期——让每个并发任务持有自己的 Session
数据库·python
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(28):MEM1——将记忆压缩融入推理,实现近似恒定上下文的长程智能体
论文阅读·人工智能·学习·开源·github
尤乐娃子1 小时前
进入大厂(厂子大)实习Day8
前端·笔记·实习
一只小菜鸡..1 小时前
南京大学 操作系统 (JYY) 学习笔记:持久化的黑魔法——从磁铁、刻坑到闪存电荷
服务器·笔记·学习
aFakeProgramer1 小时前
Linux版本兼容问题及RTA-VRTE环境配置笔记
linux·笔记
大数据魔法师1 小时前
Python 网络请求库 curl_cffi:从入门到实战,如何规避网站指纹检测
python·数据分析
中电华星1 小时前
专业的工业电源公司
网络·python
databook2 小时前
用统计检验来确定“重要特征”
python·机器学习·scikit-learn