
python
请叫我大虾
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python六十四: 迭代器协议
迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代。(只能往后走,不能往前退)。 可迭代对象:实现了迭代器协议的对象。(如何实现:对象内部定义一个__iter__()方法)。 协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max等函数...原创 2019-05-12 23:20:49 · 372 阅读 · 0 评论 -
python四十七:在子类中调用父类方法
class Weapon: def __init__(self,color): self.color = color def reach(self): print("射程")class Ak47(Weapon): def __init__(self,color,type): Weapon.__init__(self,...原创 2018-11-08 22:54:05 · 276 阅读 · 0 评论 -
python四十四:面向对象特性:继承
python中的继承分为:单继承和多继承.class Father: passclass Mother: passclass Son(Father): # 单继承 passclass Son(Father, Mother): # 多继承 pass 继承:子类会继承父类所有的属性. 如果子类自定义的属性和父类重名了,那么子类会先找自己...原创 2018-11-05 13:44:34 · 234 阅读 · 0 评论 -
python四十六:继承顺序之线性顺序列表
python是多继承,所以继承多个类时,会产生查找顺序的问题? 如下就是查找顺序 当类是经典类时,多继承情况下,会按照深度优先方式查找。 当类是新式类时,多继承情况下,会按照广度优先方式查找。(python3默认是新式类,默认继承object类)新式类包含了更多的功能,推荐使用新式类。 父类继承了object类,该类就是新式类,否则是经典类。 对于定义的每一个类,pyt...原创 2018-11-07 23:35:51 · 280 阅读 · 0 评论 -
python四十五:归一化继承
类似java中的接口,一个类实现了某个接口,就必须实现这个接口中定义的方法。from abc import ABC,abstractmethodclass Animal(ABC): @abstractmethod def eat(self): passclass Dog(Animal): def swim(self): p...原创 2018-11-07 23:25:41 · 242 阅读 · 0 评论 -
python四十三:静态属性,类方法
静态属性 @property 既可以访问类属性,也可以访问实例属性class Phone: def __init__(self,brand,color, version): self.brand = brand self.color = color self.version = version # 相当于把函数属性编变成了...原创 2018-11-01 10:56:22 · 1159 阅读 · 0 评论 -
python四十二:类和对象
类有数据属性和函数属性, 但对象只有数据属性。 def funName(args): '函数文档字符串' 函数体class 类名: '类的文档字符串' 类体 创建一个类 class foo: pass 用类foo实例化一个对象 f = foo() 实例化干了什么事? def dog(name, typ...原创 2018-10-23 22:24:43 · 242 阅读 · 0 评论 -
python四十一:hashlib模块
import hashlibobj = hashlib.md5()obj.update("md5dd".encode("UTF-8"))print(obj.hexdigest())obj.update("md5ddd".encode("UTF-8"))print(obj.hexdigest())原创 2018-10-22 10:10:17 · 276 阅读 · 0 评论 -
python四十:configparse模块
# 创建配置文档import configparserconfig = configparser.ConfigParser()config["DEFAULT"] = { "ServerAliveInterval":"45", "Compression":"yes", "CompressionLevel":"9"}confi原创 2018-10-11 18:05:42 · 231 阅读 · 0 评论 -
python三十九:logging模块
import logginglogging.basicConfig( level=logging.DEBUG # 设置日志级别, 默认为 WARNING ,filename="logger.log" # 将日志信息输出到文件中 ,filemode="w" # 文件打开模式,默认为'a' # asctime:字符串形式的当前时间 filename:文件名称...原创 2018-09-30 20:20:40 · 293 阅读 · 0 评论 -
python三十五:pickle模块
pickle和json的用法是一样的.但 pick序列化后的数据是字节,不是字符串.所以pickle可以序列化函数,对象等.import pickledic = {"name":"guanyu","age":18}lt = ['abc','def']data = pickle.dumps(dic) # 所有的数据类型都转换成字符串print(data, type(data)...原创 2018-09-04 00:38:46 · 269 阅读 · 0 评论 -
python三十七:xml模块
# xml文件<data> <people name="liubein"> <age must="yes">22</age> <sex>man</sex> <job name="emperor"/&am原创 2018-09-05 22:47:21 · 267 阅读 · 0 评论 -
python三十八:re模块
正则表达式(re模块)是一种小型的,高度专业化的编程语言。(在python中)它内嵌在python中,并通过re模块实现。正则表达式模块被编译成一系列字节码,然后由用c编写的匹配引擎执行。 正则就是处理字符串的。1.普通字符:字符串本身的方法。比如字符串的 find(), split(). 2. 元字符: .^$*+?{}[]|()\import res = "h...原创 2018-09-08 23:33:08 · 1581 阅读 · 0 评论 -
python三十六:shelve模块
shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写.key必须为字符串,而值可以是python所支持的数据类型.import shelvef = shelve.open("shelve.txt")f["info1"] = {"name":"guanyu", "age":18}f["info2"] = {"name"原创 2018-09-04 23:38:44 · 273 阅读 · 0 评论 -
python三十四:json模块
import jsondic = {"name":"guanyu","age":18}lt = ["abc",'def']data = json.dumps(dic) # 所有的数据类型都转换成字符串print(data, type(data))data = json.loads(data) # 将字符串解析成对应的数据类型print(data, type(data))d...原创 2018-08-29 23:37:11 · 250 阅读 · 0 评论 -
python三十三:sys模块
sys.exit(0) # 退出程序,正常退出时exit(0)print(sys.version) # 获取python解释程序的版本信息print(sys.platform) # 返回操作系统平台名称print(sys.path) # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值# 小小的进度条功能import sysimport timefor i ...原创 2018-08-29 22:56:51 · 308 阅读 · 0 评论 -
python二十七:从最内部的循环直接跳出来
tag = True # 通过一个tag标识,那么就可以从最内部的循环直接跳出来while tag: print("level1>>") ipt = input() if ipt == 'quit':break if ipt == 'quit_all': tag = False while tag: print("level2...原创 2018-08-21 23:16:50 · 397 阅读 · 0 评论 -
python四十八:多态
多态: 对象如何通过他们共同的属性和动作来操作及访问,而不需要考虑他们具体的类。 比如: # 字符串和列表都有__len__方法ss = "ssssss"lt = [1,2,3,4,5,6]print(ss.__len__()) # 等价于调用len()函数, len(ss)print(lt.__len__()) # 等价于调用len()函数, len(lt)cla...原创 2018-11-16 00:20:34 · 206 阅读 · 0 评论 -
python四十九:封装
class Animal: # 在属性前加上单下划线,那么该属性就属于类内部的属性 # 但python并不会真的阻值你访问私有的属性。但非常不建议调用这种下划线开头的属性 _type="动物" # 双下划线开头的,python会重命名, 在前面加上 "_类名",如: __color被重命名为_Animal__color __color = "白色" ...原创 2018-11-20 00:42:26 · 242 阅读 · 0 评论 -
windows命令
calc命令可以打开计算器taskkill /f /im 进程.exe 就可以将相应的程序关闭掉.原创 2018-11-25 11:21:08 · 223 阅读 · 0 评论 -
python六十五:描述符(__get__, __set__, __delete__)
优先级: 1. 类属性 2. 数据描述符 3. 实例属性 4. 非数据描述符 5.找不到的属性触发__getattr()__原创 2019-05-15 18:40:06 · 350 阅读 · 0 评论 -
python六十三: __call__
对象后面加括号,触发执行。 ps:构造方法的执行是由创建对象触发的,即 对象 = 类名(); 而对于__call__方法的执行是由对象后加括号触发的,即对象() 或者 类()()class Foo: def __call__(self, *args, **kwargs): print('实例执行了,obj()')f1 = Foo()f1()...原创 2019-05-09 10:29:36 · 211 阅读 · 0 评论 -
python六十二: 析构方法
析构方法:当对象在内存中被释放时,自动触发执行。 ps:此方法一般无须定义,因为python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因此此工作都是交给python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。class Foo: def __init__(self, name): self.name = n...原创 2019-05-09 10:03:28 · 331 阅读 · 0 评论 -
python六十一: __module__属性
tool.py如下class util: def __init__(self): self.name = "util"bmodule.py如下:from aa.tool import utilu = util()print(u.name)print(u.__module__) # u是来自哪个模块print(u.__class__...原创 2019-05-08 23:44:01 · 1062 阅读 · 0 评论 -
python五十九: slots属性
class Foo: __slots__ = ['name', 'age']f = Foo()print(f.__slots__)print(Foo.__slots__)f.name = 'dsf'print(f.name)#f.__dict__ #没有了 __dict__这个属性# f.sex = "man" 不能够再添加属性f2 = Foo()f2....原创 2019-04-09 23:55:57 · 226 阅读 · 0 评论 -
python五十八: 自定制格式化方式
format_dic = { "ymd":"{0.year} {0.month} {0.day}", "y:m:d":"{0.year}:{0.month}:{0.day}", "y-m-d":"{0.year}-{0.month}-{0.day}"}class MyDate: def __init__(self,year,month,day): ...原创 2019-04-08 22:58:08 · 232 阅读 · 0 评论 -
python六十: __doc__属性
class Foo: '描述信息' passclass Bar(Foo): passprint(Foo.__doc__) # 该属性无法被继承print(Bar.__doc__) # 该属性无法被继承, 所以打印结果为Noneprint(Foo.__dict__)print(Bar.__dict__)...原创 2019-04-11 23:53:26 · 307 阅读 · 1 评论 -
python五十五:__getattribute__内置函数
class Foo: def __init__(self,x): self.x = x def __getattr__(self, item): print("调用__getattr_方法") # 不管有没有属性,都会调用该方法 def __getattribute__(self, item): print("调...原创 2019-03-17 22:18:18 · 282 阅读 · 0 评论 -
python五十七:str与repr,类似于 java对象中的tostring()方法
class Foo: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return ("姓名:%s 年龄%s"%(self.name, self.age))f = Foo('张飞','22')print(f)...原创 2019-03-19 21:49:59 · 1150 阅读 · 0 评论 -
python五十六:item系列方法
class Foo: def __getitem__(self, item): print("__getitem__") return self.__dict__[item] def __setitem__(self, key, value): print("__setitem__") self.__dict__[...原创 2019-03-19 21:29:06 · 876 阅读 · 0 评论 -
python五十四:isinstance和issubclass
class Foo: passf1 = Foo()print(isinstance(f1, Foo)) # f1是否是类Foo的实例class Bar(Foo): passprint(issubclass(Bar, Foo)) # 类Bar是否是类Foo的子类原创 2019-03-03 22:29:26 · 228 阅读 · 0 评论 -
python五十三:组合的方式完成授权
import timeclass Open: def __init__(self, filename, mode='r', encoding='utf-8'): self.file = open(filename,mode, encoding=encoding) self.mode = mode self.encoding = encod...原创 2019-03-03 00:04:03 · 290 阅读 · 0 评论 -
python五十二:__setattr__,__delattr__,__getattr__方法
class Foo: def __init__(self,x): self.x = x def __getattr__(self, item): print("执行了getattr方法") def __delattr__(self, item): print("执行了删除方法",item) def __seta...原创 2019-01-13 20:40:47 · 286 阅读 · 0 评论 -
python五十一:动态导入模块,通过字符串导入模块
目录结构如下: # 动态导入模块方式一:byd = __import__("car.BYD") # 返回的是最顶层的模块print(byd)# byd.run()byd.BYD.run() # byd是最顶层的模块,所以还要通过 .BYD找到BYD模块# 动态导入模块方式二:import importlibbyd = importlib.import_modul...原创 2018-12-24 00:48:26 · 447 阅读 · 0 评论 -
python五十:反射
class Earth: def __init__(self, name, address, amount): self.name = name self.address = address self.__popAmt = amount def Rotation(self): print("%s正在自转" % (s...原创 2018-11-29 23:14:29 · 266 阅读 · 0 评论 -
python二十九:__name__
__name__是一个变量.当在执行文件中打印__name__,该变量内容是'__main__'def add(x,y): print("add") return x+ydef sub(x,y): return x-y# 当别的py文件调用该文件,那么下面这段代码就不会被执行,便于测试if __name__ == '__main__': a =...原创 2018-08-25 00:20:19 · 233 阅读 · 0 评论 -
python二十六: 字符串颜色
i = 0while i<50 : print("\033[1;"+str(i)+"m这是查询功能:\033[0m", i) i += 1原创 2018-08-21 21:15:52 · 734 阅读 · 0 评论 -
Python单引号、双引号和三双引号的区别
转载自:https://blog.youkuaiyun.com/sinat_25957705/article/details/71055406Python单引号、双引号和三双引号的区别python字符串通常有单引号('...')、双引号("...")、三引号("""...""")或('''...''')包围,三引号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,但双引号和...转载 2018-08-21 20:56:29 · 554 阅读 · 0 评论 -
python十四:全局变量(global)与局部变量与上一级变量(nonlocal)
# 全局变量name = "关羽"print(name)def globalVar(): global name # global 可以引用上面声明的name name = "张飞" print(name," ")globalVar()print(name) # name已经被改变...原创 2018-07-12 23:50:38 · 1049 阅读 · 0 评论 -
python九:元祖(tuple)
# 元祖类tuple# 元祖用小括号括起来,一般都会在最后一个元素后加个逗号,区分函数(函数也是用小括号括起来的)# 元祖的一级元素不可被修改,增加,删除.但元祖里嵌套的列表等可以被修改tu = (1, 2, 3, 4, [9, 8, 7],)print(tu)# 索引取值v = tu[1]print(v)# 切片取值v = tu[1:3]print(v)# 支持for循...原创 2018-07-06 00:52:11 · 309 阅读 · 0 评论