注意事项
- Python中区分大小写!
- Python用空格控制代码结构,不像C++等用括号。
- “=”对象引用与其他语言有不同!
函数
Class
private
在变量前加__
,外部不能直接访问。类似C++中的private/protected
有些时候,看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。
获取对象信息
- isinstance()
- dir()查看对象的所有属性和方法
- getattr(),setattr(),hasattr()可以用来操作对象的状态。
动态绑定
支持在程序中定义methods,绑定指定实例或者class,相比其他语言只能在class中定义更加灵活
定制类
init(self,…)
创建class实例时自动调用的初始化定义。
slots
在class定义中定义的变量,用来限制实例中能添加的属性。
在继承的子类实例中不受影响,需要另外定义。
str
1 | class Student(object): |
repr()
调试中使用的,功能与__str__类似。
1 | class Student(object): |
iter()
如果一个类想被用于循环,就需要用到__iter__,不停调用__next__(),直到返回StopIteration()。
1 | class Fib(object): |
其他
- getitem()
- getattr()
- call()
@property
通过@property把方法变成属性调用,通过setter和getter定义限制。
如果只定义getter,不定义setter,则是一个只读属性。