ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:33.69KB ,
资源ID:12214234      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12214234.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(python学习笔记.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

python学习笔记.docx

1、python学习笔记模块几个模块相关的规则: 一个文件代表一个模块。 可以用import module导入模块,也可以用form module import member导入模块的成员。 如果导入的是module,必须使用module.member进行访问;如果导入的member,可以直接访问member。 导入的module或member都会变成当前module的member。b.py1 # coding=utf-82 3 print _name_4 5 def say_b():6 print ba.py1 # coding=utf-82 3 import b4 from b import

2、*5 6 print _name_7 8 def say_a():9 print atest.py1 # coding=utf-82 3 import a4 5 print _name_6 7 a.say_a();8 a.say_b();9 a.b.say_b()输出1 b2 a3 _main_4 a5 b6 b异常管理 1 # coding=utf-8 2 3 # 自定义异常 4 class HappyException(Exception): 5 pass 6 7 # 引发和捕获异常 8 try: 9 raise HappyException10 except:11 print(Happy

3、Exception)12 13 try:14 raise HappyException()15 except:16 print(HappyException)17 18 # 捕获多种异常19 try:20 raise HappyException21 except (HappyException, TypeError):22 print(HappyException)23 24 # 重新引发异常25 try:26 try:27 raise HappyException28 except (HappyException, TypeError):29 raise30 except:31 print

4、(HappyException)32 33 #访问异常实例34 try:35 raise HappyException(都是我的错)36 except (HappyException, TypeError), e:37 print(e)38 39 #按类型捕获40 try:41 raise HappyException42 except HappyException:43 print(HappyException)44 except TypeError:45 print(TypeError)46 47 #全面捕获48 try:49 raise HappyException50 except:5

5、1 print(HappyException)52 53 #没有异常的else54 try:55 pass56 except:57 print(HappyException)58 else:59 print(没有异常)60 61 #总会执行的final62 try:63 pass64 except:65 print(HappyException)66 else:67 print(没有异常)68 finally:69 print(总会执行)面向对象先上一张图几个规则:1. 一切都是对象,python中一切都是对象,每个对象都包含一个_class_属性以标记其所属类型。2. 每个对象(记得一切都是

6、对象啊)都包含一个_dict_属性以存储所有属性和方法。3. 每个类型都包含一个_bases_属性以标记其父类。4. 属性和方法的访问规则:依次搜索instance、子类、父类、父类的父类、直到object的_dict_,如果找到就返回。5. 属性和方法的设置规则:直接设置instance._dict_。6. 以上属性和方法访问或设置规则没有考虑“魔法方法”,下文会解释。示例 1 # coding=utf-8 2 3 _metaclass_ = type 4 5 # 类型定义 6 # 实例方法必的第一个参数代表类型实例,类似其他语言的this。 7 class Animal: 8 name =

7、 未知 # 属性定义。 9 10 def _init_(self, name): #构造方法定义。11 self.name = name12 13 def getName(self): # 实例方法定义。14 return self.name15 16 def setName(self, value):17 self.name = value18 19 print(Animal.name) # 未知20 print(Animal._dict_name) # 未知21 22 animal = Animal(狗狗)23 print(animal.name) # 狗狗24 print(animal.

8、_dict_name) # 狗狗25 print(Animal.name) # 未知26 print(Animal._dict_name) # 未知27 print(animal._class_.name) # 未知28 print(animal._class_._dict_name) # 未知1 # 类型定义中的代码会执行,是一个独立的作用域。2 class TestClass:3 print(类型定义中) #类型定义中绑定方法和未绑定方法 1 class TestClass: 2 def method(self): 3 print(测试方法) 4 5 test = TestClass()

9、6 print(TestClass.method) # 7 print(test.method) #bound method TestClass.method of 8 9 TestClass.method(test) #测试方法10 test.method() #测试方法绑定方法已经绑定了对象示例,调用的时刻不用也不能传入self参数了。注:使用对象访问实例方法为何会返回绑定方法?这个还得等到学完“魔法方法”才能解释,内部其实是拦截对方法成员的访问,返回了一个Callable对象。私有成员1 # 私有成员2 class TestClass:3 _private_property = 14 5

10、 def _private_method():6 pass7 8 print(TestClass._dict_) # _module_: _main_, _TestClass_private_method: , _TestClass_private_property: 1难怪访问不了了,名称已经被修改了,增加了访问的难度而已。多重继承 1 #多重继承 2 class Base1: 3 pass 4 5 class Base2: 6 pass 7 8 class Child(Base2, Base1): 9 pass10 11 child = Child()12 print(isinstance

11、(child, Child) # True13 print(isinstance(child, Base2) # True14 print(isinstance(child, Base1) # True如果继承的多个类型之间有重名的成员,左侧的基类优先级要高,上例子Base2会胜出。接口那里去了,鸭子类型比接口更好用。 1 class TestClass1: 2 def say(self): 3 print(我是鸭子1) 4 5 class TestClass2: 6 def say(self): 7 print(我是鸭子2) 8 9 def duck_say(duck):10 duck.sa

12、y()11 12 duck_say(TestClass1() # 我是鸭子113 duck_say(TestClass2() # 我是鸭子2调用父类 1 # 调用父类 2 class Base: 3 def say(self): 4 print(Base) 5 6 class Child(Base): 7 def say(self): 8 Base.say(self) 9 super(Child, self).say()10 print(Child)11 12 child = Child()13 child.say()魔法方法详细内容参考:对象构造相关:_new_、_init_、_del_。

13、1 from os.path import join 2 3 class FileObject: 4 Wrapper for file objects to make sure the file gets closed on deletion. 5 6 def _init_(self, filepath=, filename=sample.txt): 7 # open a file filename in filepath in read and write mode 8 self.file = open(join(filepath, filename), r+) 9 10 def _del_

14、(self):11 self.file.close()12 del self.file运算符重载:所有运算符都能重载。 1 class Word(str): 2 Class for words, defining comparison based on word length. 3 4 def _new_(cls, word): 5 # Note that we have to use _new_. This is because str is an immutable 6 # type, so we have to initialize it early (at creation) 7 if

15、 in word: 8 print Value contains spaces. Truncating to first space. 9 word = word:word.index( ) # Word is now all chars before first space10 return str._new_(cls, word)11 12 def _gt_(self, other):13 return len(self) len(other)14 15 def _lt_(self, other):16 return len(self) = len(other)20 21 def _le_

16、(self, other):22 return len(self) Word(wei)属性访问。 1 class AccessCounter: 2 A class that contains a value and implements an access counter. 3 The counter increments each time the value is changed. 4 5 def _init_(self, value): 6 super(AccessCounter, self)._setattr_(counter, 0) 7 super(AccessCounter, se

17、lf)._setattr_(value, value) 8 9 def _setattr_(self, name, value):10 if name = value:11 super(AccessCounter, self)._setattr_(counter, self.counter + 1)12 # Make this unconditional.13 # If you want to prevent other attributes to be set, raise AttributeError(name)14 super(AccessCounter, self)._setattr_

18、(name, value)15 16 def _delattr_(self, name):17 if name = value:18 super(AccessCounter, self)._setattr_(counter, self.counter + 1)19 super(AccessCounter, self)._delattr_(name)集合实现。 1 class FunctionalList: 2 A class wrapping a list with some extra functional magic, like head, 3 tail, init, last, drop

19、, and take. 4 5 def _init_(self, values=None): 6 if values is None: 7 self.values = 8 else: 9 self.values = values10 11 def _len_(self):12 return len(self.values)13 14 def _getitem_(self, key):15 # if key is of invalid type or value, the list values will raise the error16 return self.valueskey17 18

20、def _setitem_(self, key, value):19 self.valueskey = value20 21 def _delitem_(self, key):22 del self.valueskey23 24 def _iter_(self):25 return iter(self.values)26 27 def _reversed_(self):28 return FunctionalList(reversed(self.values)29 30 def append(self, value):31 self.values.append(value)32 def hea

21、d(self):33 # get the first element34 return self.values035 def tail(self):36 # get all elements after the first37 return self.values1:38 def init(self):39 # get elements up to the last40 return self.values:-141 def last(self):42 # get last element43 return self.values-144 def drop(self, n):45 # get

22、all elements except first n46 return self.valuesn:47 def take(self, n):48 # get first n elements49 return self.values:n可调用对象,像方法一样调用对象。 1 class Entity: 2 Class to represent an entity. Callable to update the entitys position. 3 4 def _init_(self, size, x, y): 5 self.x, self.y = x, y 6 self.size = siz

23、e 7 8 def _call_(self, x, y): 9 Change the position of the entity.10 self.x, self.y = x, y11 print(x, y)12 13 entity = Entity(5, 1, 1)14 entity(2, 2)资源管理 1 class Closer: 2 def _enter_(self): 3 return self 4 5 def _exit_(self, exception_type, exception_val, trace): 6 print(清理完成) 7 return True; 8 9 wi

24、th Closer() as closer:10 pass对象描述符。 1 class Meter(object): 2 Descriptor for a meter. 3 4 def _init_(self, value=0.0): 5 self.value = float(value) 6 def _get_(self, instance, owner): 7 return self.value 8 def _set_(self, instance, value): 9 self.value = float(value)10 11 class Foot(object):12 Descrip

25、tor for a foot.13 14 def _get_(self, instance, owner):15 return instance.meter * 3.280816 def _set_(self, instance, value):17 instance.meter = float(value) / 3.280818 19 class Distance(object):20 Class to represent distance holding two descriptors for feet and21 meters.22 meter = Meter()23 foot = Fo

26、ot()Mixin(也叫掺入)掺入模块:playable.py1 # coding=utf-82 3 def paly(self):4 print(游戏中.)掺入目标模块:test.py1 # coding=utf-82 3 class Animal:4 from playable import paly5 6 animal = Animal()7 animal.paly() # 游戏中.Open Class(打开类型,从新定义成员) 1 #coding:utf-8 2 3 class TestClass: 4 def method1(self): 5 print(方法1) 6 7 def m

27、ethod2(self): 8 print(方法2) 9 10 TestClass.method2 = method211 12 test = TestClass()13 test.method1() # 方法114 test.method2() # 方法2Meta Programming(元编程)1 TestClass = type(TestClass, (object,), 2 say: lambda self : print(你好啊)3 )4 5 test = TestClass()6 test.say() 1 def getter(name): 2 def getterMethod(s

28、elf): 3 return self._getattribute_(name) 4 return getterMethod 5 6 def setter(name): 7 def setterMethod(self, value): 8 self._setattr_(name, value) 9 return setterMethod 10 11 class TestClass:12 getName = getter(name)13 setName = setter(name)14 15 test = TestClass()16 test.setName(段光伟)17 print(test.getName()

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1