一 成员修饰符
公有成员
私有成员, 字段名
- 无法直接访问,只能间接访问
class Foo:
def __init__(self,name,age):
self.name = name
self.age = age
self.__age = age
def __str(self,name):
self.name =
obj = Foo()
obj.name
#obj.age
obj.__age
二 特殊成员
__init__ 类()自动执行
__call__ 对象() 类()() 自动执行
__int__ int(对象)
__str__ str()
__add__ 对象相加自定义返回值
__del__ 析构方法,当对象被销毁时自动执行
__dict__ 将对象中封装的所有内容通过字典的形式返回
__getitem__ 切片(slice类型) 或者索引
__setitem__
__delitem__
__iter__
# 如果类中有 __iter__ 方法,对象 =>> 可迭代对象
# 对象.__iter__() 的返回值: 迭代器
# for 循环 , 迭代器 ,next
# for 循环 ,可迭代对象,对象.__iter__(),迭代器 ,next
# 1. 执行li对象的类F中的 __iter__方法,并获取其返回值
# 2. 循环上一步中返回的对象
三 metaclass,类的祖宗
a.Python中一切事物皆为对象
b.
class Foo:
pass
obj = Foo()
# obj 是对象,Foo类
# Foo 类也是一个对象,type的对象
c.
类都是type类的对象 type(..)
"对象"都是以类的对象 类()
四 异常处理
AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的
五 反射
getattr() 取得对象的成员
六 单例模式
Autor:VincentAdamNemessis
E-mail:vincent5519@yeah.net
QQ:3377299629
Wechat:ZTXLoveC3344