- 博客(21)
- 问答 (1)
- 收藏
- 关注
原创 python 在虚拟环境中安装项目依赖requirements.txt
进入到了虚拟环境中:切到虚拟环境目录的Script文件下,输入命令:pip install –r 目录/requirements.txt
2018-05-30 15:56:55 4434
原创 python虚拟环境 venv
1. 打开cmd命令行模式2. Cd到python安装根目录3. 在项目根目录下新建一个存放虚拟环境的文件夹4. 执行命令python –m venv 虚拟环境目录5. 进入虚拟环境:切到虚拟环境目录的Script文件下,输入命令:activite6. 进入到了虚拟环境...
2018-05-30 15:55:54 3207
原创 python 属性引用:__getattr__和__setattr__
#__getattr__方法是拦截属性点号运算,更确切的说,当通过对未定义(不存在)属性名称和实例进行点号运算时,就会用属性名称作为字符串调用这个方法,如果能通过继承数搜索流程找到这个属性,该方法就不会被调用class empty: def __getattr__(self, attrname): if attrname=='age': return 40...
2018-05-25 16:26:01 361
原创 python 成员关系:__contains__,__iter__和__getitem__
#__contains__优于__iter__优于__getitem__方法#__contains__方法应该把成员关系定义为对一个映射应用键(并且可以使用快速查找),以及用于序列的搜索class Iters: def __init__(self, value): self.data=value def __getitem__(self, i): pr...
2018-05-25 15:59:17 3125
原创 python 运算符重载迭代器对象__iter__,__next__
#python中所有的迭代环境都会先尝试__iter__方法,在尝试__getitem__,只有在对象不支持迭代协议时,才会尝试索引#迭代环境是通过调用内置函数iter去尝试寻找__iter__方法来实现的,而这种方法应该返回一个迭代器,如果已经提供了,python会重复调用这个迭代器对象的next方法,直到发生stopIteration异常,如果没有找到__iter__方法,python会改用_...
2018-05-25 14:22:28 1639
原创 python 运算符重载__getitem__和__setitem__
class Indexer: def __getitem__(self, index): #重载索引,对于实例的索引运算,会自动调用__getitem__ return index**2x=Indexer()print(x[3]) #9for i in range(5): print(x[i], end=', ') #0, 1, 4, 9, 16, ...
2018-05-25 13:22:10 2990
原创 python 类方法调用、继承和调用超类构造函数
#实例调用 instance.method(args...)#类调用 class.method(instance, args...)class NextClass: def printer(self, text): #可被类的所有实例所继承 self.message=text print(self.message) x=NextClass()x.pri...
2018-05-24 14:09:33 2658
原创 python 对象持久化
testdemo.pyclass AttrDisplay(): def gatherAtters(self): attrs=[] for key in sorted(self.__dict__): attrs.append('%s=%s'%(key, getattr(self, key))) return ', '.join(a...
2018-05-23 16:53:43 1115
原创 python 内省工具
#内省工具是特殊的属性和函数,允许我们访问对象实现的一些内部机制class Person: def __init__(self, name, job=None, pay=0): self.name=name self.job=job self.pay=pay def lastName(self): return self....
2018-05-23 14:49:19 653
原创 python 复合对象
#一种常用的编码模式是把对象彼此嵌套以组成复合对象class Person: def __init__(self, name, job=None, pay=0): self.name=name self.job=job self.pay=pay def lastName(self): return self.name.sp...
2018-05-23 14:21:50 524
原创 python 类属性
class FirstClass: def setdata(self, value): self.data=value def display(self): print(self.data) x=FirstClass()y=FirstClass()x.setdata('xxx')y.setdata('yyy')x.display() #xx...
2018-05-23 13:41:01 220
原创 python 运算符重载
#运算符重载就是让用类写成的对象,可截获并响应用在内置类型上的运算:加法,切片,打印和点号运算等#1. 以双下划线命名的方法(__X__)的特殊钩子,python运算符重载的实现是提供特殊命名的方法来拦截运算,python替每种运算和特殊命名的方法之间,定义了固定不变的映射关系#2. 当实例出现在内置运算时,这类方法会自动调用,例如,如果实例对象继承了__add__方法,当对象出现+表达式内时,该...
2018-05-21 13:03:47 1004
原创 python 用字符串名称导入模块
#exec将一个代码字符串传递给python解释器以执行modname='string'exec("import "+modname)print(string) #<module 'string' from 'D:\\python3\\lib\\string.py'>#__import__函数来导入modname='sys'string=__import__(modname)pri...
2018-05-17 14:48:54 1920
原创 python 混合用法模式:__name__和__main_
#如果文件以顶层文件执行,在启动时,__name__就会设置为字符串__main__#如果文件被导入,__name__就会改设为客户端的模块名'''eggs.pyprint(__name__)'''import eggs #导入eggs,eggs文件中的__name__=eggsprint(__name__) #顶层文件执行,__name__=__main__...
2018-05-16 15:28:07 156
原创 python _X和__all__隐藏模块
#最小化from *的破坏:_X和__all__隐藏模块#_X可以防止from *语句导入时把其中的变量名复制出去,但是还是可以通过其他方式来看见该变量名'''eggs.pyx=9999_X=8888'''import syssys.path.append('D:/test')from pkg.eggs import *#print(_X) #builtins.NameError: name ...
2018-05-16 14:07:03 634
原创 python 模块包
'''模块包python代码的目录就被成为包包导入是吧计算机上的目录变成python的命名空间包导入最左边的部分仍然是sys.path模块搜索路径列表中的一个目录__init__.py包文件包导入语句的路径中的每个目录内都必须有__init__.py文件,否则导入包会失败d:/a/b/c/d.pyd:/a加入到sys.path中import b.c.d导入d.py则a目录中不需要__init__....
2018-05-15 13:29:47 159
原创 python 函数默认可变参数陷阱
def saver(x=[]): x.append(1) print(x) saver()saver()saver()#output[1][1, 1][1, 1, 1]#因为默认列表在def语句执行时被创建,不会每次函数调用都得到一个新的李彪,所以每次新的元素加入后,列表会变大#同上效果def saver():
2018-05-10 16:31:07 151
原创 python 生成器
'''生成器函数:编写为常规的def语句 ,但是使用yield语句一次返回一个结果,在每次结果之间挂起和继续他们的状态生成器表达式:类似于列表解析,但是,他们返回按需产生结果的一个对象,而不是构建一个结果列表生成器函数yield vs return状态挂起和返回一个值并退出常规函数不同,生成器函数自动在生成值的时刻挂起并继续函数的执行,挂起时保存的状态包含他们的整个本地作用
2018-05-10 13:04:49 105
原创 python 函数参数
#不可变参数"通过值"进行传递def f(a): a=99 print(a) b=88f(b) #99print(b) #88#可变对象是通过"指针"进行传递的,如列表,字典def changer(a,b): a=2 b[0]='spam'x=1l=[1,2]changer(x,l)pr
2018-05-08 17:33:38 242
原创 python 函数作用域
变量可以在三个不同的地方分配1. 如果一个变量在def内赋值,它被定位在这个函数之内2. 如果一个变量在一个嵌套的def中赋值,对于嵌套函数来说,他是非本地的3. 如果在def之外赋值,他就是整个文件全局的作用域法则1. 内嵌模块是全局作用域2. 全局作用域的作用范围仅限于单个文件3. 每次对函数的调用都创建了一个新的本地作用域4. 函数中赋值的变量名除非声明为全局变量或非本地变量,否则均为本地变...
2018-05-08 12:09:37 180
空空如也
python 中的字符串反斜杠字符 \newline是什么意思,怎么用
2017-11-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人