03 2019 档案

摘要:def deco(func): print(' ') return func @deco # >test=deco(test) def test(): print('test ') test() #result # # test @deco # >Foo=deco(Foo) class Foo: p 阅读全文
posted @ 2019-03-31 21:43 wind_y 阅读(93) 评论(0) 推荐(0)
摘要:上下文管理协议,即with语句。为了让一个对象兼容with语句,必须要在这个对象的类中声明__enter__和__exit__方法 class Open(): def __init__(self,name): self.name=name def __enter__(self): print('执行 阅读全文
posted @ 2019-03-31 13:09 wind_y 阅读(230) 评论(0) 推荐(0)
摘要:1.描述符本质就是一个新式类,在这个类中,至少实现了__set__,__get__,__delete__三种方法中的一种,也被称为描述符协议 __get__:调用相关属性时触发 __set__:修改相关属性时触发 __delete__:删除相关属性时触发 2.至少实现了__get__,和__set_ 阅读全文
posted @ 2019-03-28 20:12 wind_y 阅读(248) 评论(0) 推荐(0)
摘要:1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stopiteration异常,以终止迭代 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__方法) class Foo: def __init__(self,n): s 阅读全文
posted @ 2019-03-28 17:42 wind_y 阅读(450) 评论(0) 推荐(0)
摘要:一、isinstance(obj,cls)检查obj是否是类cls的对象 二、__setitem__、__getitem__、__delitem__:只能用字典的方式,才能触发 与__getattr__、方式不同,效果一样 三、str与repr repr:如果找不到__str__,就会去找__rep 阅读全文
posted @ 2019-03-27 17:06 wind_y 阅读(179) 评论(0) 推荐(0)
摘要:getattr(object,name[,default]) 获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选 注意:name必须用“”引起来 方法拿到的是地址,加()即可运行函数 阅读全文
posted @ 2019-03-27 15:24 wind_y 阅读(1831) 评论(0) 推荐(1)
摘要:定制自己的数据类型: class List(list): def append(self, p_object): if type(p_object) is str: # self.append(p_object) #会无限循环 super().append(p_object) #调用父类的appen 阅读全文
posted @ 2019-03-27 15:15 wind_y 阅读(201) 评论(0) 推荐(0)
摘要:注意:跟类无关,只对类的实例起作用 1.__getattr__ 当_get_getattr__与__getattribute__一起出现时: 当属性存在时,触发__getattribute__ 当属性不存在时,也是先触发__getattribute__,然后通过语句:raise AttributeE 阅读全文
posted @ 2019-03-27 10:35 wind_y 阅读(139) 评论(0) 推荐(0)
摘要:1.__getattr__:当调用对象属性不存在时,才会触发 2.__delattr__:删除时会触发 3.__setattr__:设置属性时就会触发 阅读全文
posted @ 2019-03-26 18:36 wind_y 阅读(191) 评论(0) 推荐(0)
摘要:module_t=__import__('m1.t') #可以执行t,但拿到的是顶层的模块 print(module_t) # module_t.t.test1() # from m1.t import * # from m1.t import test1,_test2 # # test1() # _test2() import importlib m=importlib.im... 阅读全文
posted @ 2019-03-26 16:42 wind_y 阅读(103) 评论(0) 推荐(0)
摘要:反射的应用场景: 当是两个人写代码时,不需要必须一个人先写完 可以实现定义好接口,接口只有在被完成时才会真正执行,这实现了即插即用,‘后期绑定’, 即可以只定义接口,后期再去实现接口的功能 阅读全文
posted @ 2019-03-26 15:39 wind_y 阅读(131) 评论(0) 推荐(0)
摘要:约定一:任何以单下划线开头的名字都应该是内部的,私有的 python并不会真的阻止你访问私有的属性,print(p1._star)依然是可以的 模块也遵循这种约定,如果模块名以单下划线开头,那么from module import时不能被导 入, 但是from module import _priv 阅读全文
posted @ 2019-03-26 10:59 wind_y 阅读(135) 评论(0) 推荐(0)
摘要:多态 多态的概念指出了对象如何通过他们共同的属性和动作来操作及访问,而不必考虑他们具体的类 (不同的对象使用同样的方法) 多态实际上是依附于继承的,是继承的实现细节。 多态,一句话概括:同一个方法,不同对象调用该方法,实现的功能不一样,最直观的例子就是python中的”+”运算方法,在数字相加时,1 阅读全文
posted @ 2019-03-25 20:42 wind_y 阅读(149) 评论(0) 推荐(0)
摘要:一、什么是类的继承? 类的继承跟现实生活中的父,子,孙子,继承关系一样,父类又称为基类。 python中类的继承分为:单继承和多继承 二:继承的两种含义: 1.继承基类的方法,并且做出自己的改变或扩展(代码重用) 2.声明某个子类兼容于某基类,定义一个接口类,子类继承接口类,并且实现接口中定义的方法 阅读全文
posted @ 2019-03-24 10:00 wind_y 阅读(125) 评论(0) 推荐(0)
摘要:定义一个人的类,人有头,手,脚等数据属性, 运行结果: 阅读全文
posted @ 2019-03-22 11:21 wind_y 阅读(145) 评论(0) 推荐(0)
摘要:静态属性:把函数封装成数据属性的形式 类方法: 静态方法:既不跟类绑定,也不跟实例绑定,不能使用类变量和实例变量,是类的工具包 阅读全文
posted @ 2019-03-21 18:57 wind_y 阅读(149) 评论(0) 推荐(0)
摘要:不完善:1.如果公式里没() 2.算到中间部,可能有*-, +- ,-- ,这样的情况 阅读全文
posted @ 2019-03-21 15:58 wind_y 阅读(2945) 评论(0) 推荐(0)
摘要:class Chinese: country='China' def __init__(self,name): self.name=name def play_ball(self,ball): print('%s 正在打 %s' %(self.name,ball)) p1=Chinese('alex') print(p1.country)... 阅读全文
posted @ 2019-03-21 11:57 wind_y 阅读(244) 评论(0) 推荐(0)
摘要:class Chinese: country='China' def __init__(self,name): self.name=name def play_ball(self,ball): print('%s 正在打%s' %(self.name,ball)) p1=Chinese('alex') print(p1.__dict_... 阅读全文
posted @ 2019-03-20 19:46 wind_y 阅读(372) 评论(0) 推荐(0)
摘要:类:把一类事物的相同的特征和动作整合到一起就是类 类是一个抽象的概念 对象:就是基于类而创建的一个具体的事物(具体的存在), 也是特征和动作整合到一起 对象是由类产生的 实例化:由类生产对象的过程叫实例化,类实例化的结果就是一个对象,或者叫做一个实例 学校类: 特征:name,addr,type 动 阅读全文
posted @ 2019-03-19 12:04 wind_y 阅读(171) 评论(0) 推荐(0)
摘要:加密: 阅读全文
posted @ 2019-03-18 18:39 wind_y 阅读(77) 评论(0) 推荐(0)
摘要:创建config文件: 运行结果: #confile 增删改查 查: 删,改,增 运行结果: i.cfg: 阅读全文
posted @ 2019-03-18 17:58 wind_y 阅读(192) 评论(0) 推荐(0)
摘要:logging模块: 默认级别为warning,默认显示到运行结果中,默认追加模式 查看输出: 另一种更简单的方法: 运行结果不仅在屏幕上显示,也在文件test_log中显示 阅读全文
posted @ 2019-03-18 16:10 wind_y 阅读(107) 评论(0) 推荐(0)
摘要:re模块: 就其本质而言,正则表达式(或RE)是一种小型的、高度专业化的编程语言,它内嵌在python中,并通过re模块来实现。 对字符串进行处理,解决模糊匹配 元字符:.^$*+?{}[] | () \ 1. . 通配符,什么都能匹配,除了换行符\n 2. ^ 只能在字符串的开头匹配 3. $ 只 阅读全文
posted @ 2019-03-17 15:05 wind_y 阅读(213) 评论(0) 推荐(0)
摘要:1.SyntaxError: unexpected EOF while parsing 由于eval函数内参数为空时引起的:输入数据 列表少打了一个] 2.在pycharm中,使用python中编写中文字符时,会提示如下错误信息: SyntaxError: Non-ASCII character ' 阅读全文
posted @ 2019-03-11 17:43 wind_y 阅读(219) 评论(0) 推荐(0)
摘要:结果: 阅读全文
posted @ 2019-03-05 17:49 wind_y 阅读(1243) 评论(1) 推荐(1)
摘要:1.eval() 功能:1.可以提取字符串中的数据结构 2.可以计算字符串中的数学表达式 eval函数就是实现list、dict、tuple与str之间的转化 str函数把list、dict、tuple转化为字符串 2.enumerate()函数用于将一个可遍历的数据对象(如列表、元组、字符串)组合 阅读全文
posted @ 2019-03-04 18:10 wind_y 阅读(238) 评论(0) 推荐(0)