Python
文章平均质量分 61
HayPinF
这个作者很懒,什么都没留下…
展开
-
阅读Python官网文档对threading.Thread线程的介绍
Python线程模块threading:https://docs.python.org/zh-cn/3/library/threading.html1、Python的threading模块定义了许多类,该模块的设计基于Java的线程模型。但是,在Java里面,锁和条件变量是每个对象的基础特性,而在Python里面,这些被独立成了单独的对象(threading.Lock()锁,threading.Condition()条件变量)。Python 的Thread类只是 Java 的 Thread 类的一个..原创 2021-07-24 22:42:46 · 1269 阅读 · 0 评论 -
AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘原因与解决办法
我是在不小心把python2.7的site-packages给加到$PYTHONPATH中污染了builtin的模块查找顺序,使得在激活python3.9.1、python3.9.5的虚拟环境时、初始化时在python3的re.py模块导入enum.IntFlag报“enum模块没有IntFlag属性错”,见下。解决办法是1、将python2的enum模块卸载掉,从而python3.9环境查找enum模块时可以查找到python3的,python2用到enum的时候建立一个python2的虚拟环境使用;2、原创 2021-07-24 16:04:59 · 5110 阅读 · 3 评论 -
python执行shell命令或可执行程序的subprocess模块
官网文档:https://docs.python.org/zh-cn/3/library/subprocess.html1、shell=True表示执行的命令是内置shell命令而非$PATH中的某个可执行程序,check=True表示对命令执行产生的异常进行raise抛出,如果不加以捕获则调用subprocess的整个程序将trackback打印异常到标准错误后退出,check=False不对命令执行产生的异常进行raise抛出,如果命令产生异常则返回subprocess.CompleteProces转载 2021-07-22 11:48:43 · 1533 阅读 · 0 评论 -
mac删除自己安装的多个版本的python解释器
转载自https://zhuanlan.zhihu.com/p/86732746转帖所说的:对于 Mac 自带的 Python,其框架目录为:/System/Library/Frameworks/Python.framework而我们安装的 Python,其(默认)框架目录为:/Library/Frameworks/Python.framework是一枚定心丸,我在其他博客上也看到有人首先列出/Library/Frameworks/Python.framework/Versions...转载 2021-07-14 23:37:43 · 1813 阅读 · 0 评论 -
python安装模块(官网文档)
https://docs.python.org/zh-cn/3/tutorial/venv.html#https://packaging.python.org/tutorials/installing-packages/python安装模块(包)的方式: pip是首选的安装程序。从Python 3.4开始,它默认包含在Python二进制安装程序中。 virtual environment是一种半隔离的 Python 环境,允许为特定的应用安装各自的包,而不是安装到整个系统。ven..翻译 2021-07-14 18:53:09 · 377 阅读 · 0 评论 -
miniconda3官网介绍
https://docs.conda.io/en/latest/miniconda.htmlminiconda安装器包含有conda包管理器和Python解释器。有两种miniconda安装器:基于Python2的Miniconda与基于Python3的Miniconda3。这两个安装器都可以安装Python2.x与Python3.x的环境。其他区别是Python3版本的Miniconda3虚拟环境时默认创建Python3的,构建模块时也默认使用Python3构建。因此创建虚拟环境的命令:翻译 2021-07-14 17:13:23 · 5452 阅读 · 0 评论 -
OpenCV Error: Assertion failed (total >= 0 && (depth == 4 || depth == 5)) in pointPolygonTest
参考:1、https://docs.opencv.org/4.5.2/d3/dc0/group__imgproc__shape.html#ga1a539e8db2135af2566103705d7a57222、https://docs.opencv.org/4.5.2/dc/d48/tutorial_point_polygon_test.html3、https://answers.opencv.org/question/206858/pointpolygontest-throws-error-f原创 2021-06-17 21:06:43 · 1637 阅读 · 0 评论 -
ERROR: Could not find a version that satisfies the requirement angles (from versions: none) ERROR: N
python2 -m pip install angles在python2上安装angles包时提示ERROR: Could not find a version that satisfies the requirement angles (from versions: none) ERROR: No matching distribution found for angles百度说要升级pip版本:pip install -U pip,但我pip版本已经是最新的,并且另外一台机器上就有angl原创 2021-05-31 21:24:20 · 842 阅读 · 0 评论 -
Python正则表达式re的嵌套捕获组按深度优先索引
>>> import re>>> my_reg = re.compile(r'(a(b(c)))')>>> text = "abc">>> mat = re.search(my_reg,text)>>> print(mat)<_sre.SRE_Match object at 0x101a28ae0>>>> mat.group(0)'abc'>>&g...原创 2021-05-20 11:05:51 · 285 阅读 · 0 评论 -
ubutnu16.04为python2.7安装pip模块
转载自https://blog.csdn.net/qq_41917697/article/details/114400002ubuntu16.04的python2没有pip模块,python2安装pip2:haypin@ubt:~/catkin_ws/src$ curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py% Total % Received % Xferd Average Speed Time ...转载 2021-04-08 20:52:49 · 820 阅读 · 0 评论 -
关于闭包对JavaScript、Python及Go的执行环境及作用域的理解
Python在名字查找时遵循LEGB作用域顺序的名字查找规则,Python中的函数是作为对象提供给用户的,可以给Python函数添加属性。def func1(): #函数定义 var1="heihei" def func2(): return var1 return func2var1="haha"print(func1()()) #打印"heihei",此时对func1名字查找,#在全局作用域上文中找到了func1函数的定义,那么就可以调原创 2020-11-04 17:51:03 · 288 阅读 · 0 评论 -
再探Python类属性与实例属性,类方法与实例方法,LEGB作用域及名字查找顺序,
Python类中的名字查找有好几个点,常见俊龙金马的有关文章class MyClass: cls_attr=0 cls_attrB=0 def __init__(self,val1): self.attr=val1 #cls_attr+=1 #UnboundLocalError: local variable 'cls_attr' #referenced before assignment '''1、实例方法内不原创 2020-11-02 10:48:41 · 140 阅读 · 0 评论 -
python中object基类的setattr(self, name, value, /)实例方法
Python魔法方法之属性访问 ( __getattr__, __getattribute__, __setattr__, __delattr__ )class Test: def __init__(self): self.count = 0 def __setattr__(self, name, value): print('__setattr__') self.count += 1obj = Test()python3.8执行输转载 2020-08-02 23:13:12 · 2444 阅读 · 0 评论 -
python类实例的初始化方法__init__(self, *)与__new__方法
参考python 类中__init__,__new__,__class__的使用详解1、python类的__new__()方法: ①、__new__方法用于给类创建实例对象,并且返回这个实例对象; ②、因为给类创建实例对象,所以要传递一个类型对象,惯例称为"cls",代表要实例化的类,此参数在实例化时由python解释器自动提供; ③、创建实例对象时,如"obj = Person('pawarotti')",将先执行__new__(cls, *arg...原创 2020-08-02 15:22:49 · 2076 阅读 · 0 评论 -
python对象的__class__属性,与修改实例对象的__class__属性使执行被覆盖的父类同名方法
class A(): def show(self): print('base show') @classmethod def clsA(cls): print('execute base clsA() occur!')class B(A): def show(self): print('derived show') @classmethod def clsB(cls): print('e...原创 2020-08-02 11:46:17 · 831 阅读 · 0 评论 -
python的super()函数与显式调用方法
'''super()其实是builtins内置模块提供的函数,具体可help(super)查看int float list tuple dict都是类型对象'''class B: def meth(self): print("execute B::meth(self)") @classmethod def cmeth(cls): print("execute B::cmeth(cls)")class C(B): def met...原创 2020-08-01 23:14:34 · 590 阅读 · 0 评论 -
python类属性与实例属性
参考自:Python类变量和实例变量(类属性和实例属性)#-*-encoding:utf-8-*-class Person(): __counter=0 #类私有属性 #类的属性可在类内初始化,而C++类静态属性需要在类外全局作用域初始化 manager="heihei" #类公有属性 def __init__(self, name, age): self.name=name self.__age__=age #实例属性名字为__age转载 2020-07-29 21:32:00 · 126 阅读 · 0 评论 -
python类方法、类实例方法、静态方法的一些思考
参考自python静态方法、类方法和实例方法#-*-encoding:utf-8-*-class Person: __counter = 0 #__开头的私有类属性,相当于C++的静态属性 def __init__(self): print(type(self)) type(self).__counter += 1 #type(self)返回self对象的类对象 def func1(ziji): print('execute转载 2020-07-27 15:57:17 · 120 阅读 · 0 评论 -
python的__dict__与dir()的区别,与python3对不显式继承的自定义类默认继承自object类的隐含操作
1、dir(object)在python3.8解释器中help(dir):Help on built-in function dir in module builtins:dir(...) dir([object]) -> list of strings If called without an argument, return the names in the current scope. Else, return an alphabetized li转载 2020-07-26 17:44:49 · 294 阅读 · 0 评论 -
从Django源码学习了模块的运行时导入importlib.import_module()、按名取模块属性getattr()、按名设置模块属性setattr()
在虚拟环境下调用Django项目的manage.py模块并传参"runserver 8000":(venv_3.8) haypin@ubt:~/DirProj0721$ python3.8 manage.py runserver 8000 在manage.py中导入了~/DirProj0721/venv_3.8/lib/python3.8/site-packages/django/core/management/包的global函数execute_from_command_line,...原创 2020-07-25 23:47:50 · 966 阅读 · 0 评论 -
python模块相互导入时报错AttributeError: partially initialized module module-name has no attribute-name most
C++的#include类似于宏替换,.cpp最初的编译就会将#include的文件进行替换操作,此时如果发生相互包含会产生无穷递归报错。同样dll之间的相互依赖(比如项目A与项目B相互依赖),当在项目A新增export的函数或类并让项目B去import项目A新增的那项目或类时,可以先注释掉项目B中import项目A的代码并生成两个项目(两者中总需要有一个是从最初不依赖对方的状态生成的dll开始一路生成),此时生成的项目A.dll中已经有了新增的export的函数或类,然后解开项目B中import项目A的代原创 2020-07-19 22:59:36 · 8170 阅读 · 2 评论 -
python相对路径导包|模块
https://www.cnblogs.com/f-ck-need-u/p/9961372.html#%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E5%AF%BC%E5%85%A5%E9%99%B7%E9%98%B1转载 2020-07-18 23:15:31 · 5704 阅读 · 0 评论 -
python类实例方法的形参self并未做类型限定,只会在运行时做类型检查
类实例调用类实例方法时默认传入类实例给第一个self形参,self并未限定类型,只在运行时做类型检查用类的实例对象访问类成员的方法称为绑定方法(默认将实例对象传递给实例方法的self形参),而用类名调用类成员的方法称为非绑定方法。...原创 2020-07-18 12:38:10 · 666 阅读 · 0 评论 -
python赋值表达式执行过程的理解,通过运行variable=locals()来理解
python赋值表达式执行过程的理解对于”local_namespace_dict=locals()”语句,首先查找左边变量,按LEGB顺序,找不到就创建一个变量local_namespace_dict,并初始化local_namespace_dict,由于python是动态语言,不提供原子的声明命令,所以接下来立即计算右值再给左边变量提供”对象地址”,执行右边表达式locals()会生成一个local域内的{变量名:对象}的字典,此时当然有local_namespace_dict对象,只不过还没有指向而原创 2020-07-18 12:35:21 · 315 阅读 · 0 评论 -
利用python装饰器实现函数的“类型检查“
https://zhuanlan.zhihu.com/p/139056271虽然动态语言python不对变量作出编译性质的类型声明,但可以使用装饰函数对被装饰函数进行”类型检查”此例只是将”类型检查”的信息输出,如要实现”强制类型检查”,可以在wrapper()的类型检查语句中对”实参类型与形参类型不符”的情况抛出值错误异常:...转载 2020-07-18 08:42:30 · 472 阅读 · 0 评论 -
对比 C++ 和 Python,谈谈指针与引用
对比 C++ 和 Python,谈谈指针与引用转载 2020-07-06 11:15:22 · 139 阅读 · 0 评论 -
linux设置python导包路径sys.path
python PYTHONPATH的设置在shell中设置python导包路径的环境变量PYTHON:haypin@ubt:~/Files$ export PYTHONPATH=/home/haypin/Files/:$PYTHONPATH由于是环境变量,在shell以外的其他程序都可访问,但只有在python解释器程序中有意义,不同版本的python解释器会用自己的$PATHONPATH对环境变量PYTHONPATH进行解释:显示环境变量...原创 2020-07-01 21:55:50 · 2883 阅读 · 0 评论 -
python编译.py文件为.pyc和.pyd
转载自百家号"斌哥说Python"转载 2020-06-29 17:03:42 · 712 阅读 · 0 评论 -
生成python模块并安装到Site-packages
python模块安装到Site-packages教程转载 2020-06-29 17:02:09 · 1499 阅读 · 0 评论 -
确定当前Python环境中的site-packages目录位置
虚拟环境是使用python3.8解释器程序执行"python3.8 -m venv venv_3.8"创建的,在依然处于活动状态的虚拟环境venv_3.8的情况下执行"pip3 install Django==1.11"后,Django包只被安装到了pip3默认的安装目录~/.local/lib/python3.6/site-packages/下,没有安装到虚拟环境的目录。要手动指定包的下载与安装目录使用"python3.8 -m pip install Django==1.11"为python原创 2020-06-26 17:48:33 · 1572 阅读 · 0 评论 -
python建立虚拟环境,以及虚拟环境的理解
参考自解决ubuntu16.04 无法使用python 建立虚拟环境(venv或virtualenv)的问题问题:使用python3.8解释器,调用venv模块建立虚拟环境前提是确保安装了python3.8,如果调用"python3.8 -m venv name_venv"出错提示"Error: Command '['/home/haypin/PycharmProjects/learning_log/venv_3.8/bin/python3.8', '-Im', 'ensurepip', '--up翻译 2020-06-26 13:27:51 · 4980 阅读 · 2 评论 -
Python整数/整数得浮点数,有专门的整除运算符//
原创 2020-01-21 22:14:37 · 323 阅读 · 0 评论 -
Python逻辑运算支持短路运算,比如不会执行False and 1/0>0;的除零运算,便不会报错!
Python逻辑运算支持短路运算,比如不会执行False and 1/0>0;的除零运算,便不会报错!这一点同Java原创 2020-01-21 20:41:50 · 305 阅读 · 0 评论