python理解
文章平均质量分 51
gold615
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何在 python 中实现内建函数的重载
python 重载内建函数原创 2022-09-26 00:44:27 · 454 阅读 · 0 评论 -
python pickle 复原导致的变量关系丢失问题
运行 python 时,可以将当前的某些变量通过 pickle 序列化到二进制文件中;然后在需要时,再将这些变量还原,如以下代码: import pickle f = open("abc.pickle", 'wb+') x = [1,2,3] ls = [[(23, 29), (22, 79)], 'hello信息', '35',x] num = 3.1415926 pickle.dump(ls, f) pickle.dump(num, f) pickle.dump(x, f) print(id(x),id原创 2022-05-22 23:33:49 · 465 阅读 · 0 评论 -
windows python多进程的递归创建问题
在unix和linux上,multiprocessing.Process默认是使用fork创建一个子进程出来,然后在分裂的地方,子进程会调用指定的target中的函数,函数执行完毕则子进程也就结束了;而父进程则继续往下运行直到结束;所以以下代码在linux上没有任何问题: import multiprocessing import time,os print("????") def hehe(): while True: time.sleep(1) th1 = multiproce原创 2021-06-07 14:30:08 · 635 阅读 · 1 评论 -
python __add__ __iadd__
这是两个不同的类方法。 假设对象是a,它执行下面两个动作: >>>a += 10 >>>a = a + 10 当一个对象执行+=时,会先查找对象的__iadd__方法,有这个方法的话,就调用该方法,没有则调用__add__;但是如果执=+,则直接调用对象的__add__方法。 这两个方法都会返会内容,但返回的情况并不一样,对于前者来说,加是原地修改,返回对象是自己;对于后者来说,返回的是一个新对象。 对于字符串 数字等这类不可变对象来说,没有__iadd__;而像数组之原创 2021-03-01 13:54:36 · 643 阅读 · 0 评论 -
生成pip可安装的自定义库
pip安装第三方库时,支持多种格式;基本要求是必须有setup.py文件。 假设工程的目录结构如下: ├── README.txt ├── pagtest │ ├── __init__.py │ ├── abc │ │ ├── gzx │ │ │ └── zjj.html │ │ └── main1.go │ ├── def │ │ └── __init__.py │ ├── main.go │ ├── print1.py │ └── print原创 2020-12-07 23:57:52 · 500 阅读 · 0 评论 -
pip自定义安装位置
最近遇到一个需求,安装py包时,不放置在默认的site-packages下,而是放置在指定位置,类似于go get时会放置在指定的gopath下边一样,pip提供了这样的参数,使用target: pip install --target=path package 基本命令如上,其中path是要安装的位置,而package则是要安装的包名;安装的包可能有自己的依赖,这些依赖也会被安装在这个目录下; 项目中因为有requirements文件,所以我们的命令是: pip install -r requireme原创 2020-12-02 19:26:45 · 1360 阅读 · 0 评论 -
python __getattribute__ 的一个小利用
最近在写一个功能,要在paramiko包的基础上封装一层,提供更多的上传下载功能。 代码包本身在发布前会打成pyd文件给用户使用,封装的时候没有使用直接的继承关系,而是在一个新的独立类中封装了一个connection对象作为类实例属性值,类似于下边这样: class SFTP: def __init__(self,conn): self.conn = conn 然后实际使用的时候发现有个问题,就是用户其实可以通过dir的方式查到SFTP实例对象的属性值,本来加密的初衷就是不想让用户知道类的内部细节,原创 2020-10-08 00:26:24 · 247 阅读 · 0 评论
分享