第2章 面向对象编程
类的实例、属性、方法和继承
方法后面第一个参数一定是self
super().init()父类初始化属性后,子类不需要重复初始化,直接调用该方法
1 | class Player: #定义一个类 |
自定义with语句
- 自定义with语句时需要实现两个方法
- enter(self)
- exit(self, exc_type, exc_val, exc_tb)
1
2
3
4
5
6
7
8
9
10
11
12class TestWith:
def __enter__(self):
print('run')
def __exit__(self, exc_type, exc_val, exc_tb):
if exc_tb is None:
print('正常结束')
else:
print('has error %s' % exc_tb)
with TestWith():
print('test is running')
raise NameError('test nameError')
作为程序执行
- 该结构表示如果当前文件用python运行,中间的语句就会执行,如果当做模块导入,语句就不会执行
1 | if __name__ == '__main__': |