面向对象的内置函数
1. __init__()
调用类的时候触发
2. __str__()
打印对象的时候,自动触发的函数
返回值只能是字符串
3. __del__()
1. 手动执行del
2. 程序执行完毕触发
4. __enter__()
出现with语句,对象的__enter__被触发,有返回值则赋值给as声明的变量
5. __exit__()
with中代码块执行完毕时执行我啊
class Open: def __init__(self,name): self.name=name def __enter__(self): print('出现with语句,对象的__enter__被触发,有返回值则赋值给as声明的变量') # return self def __exit__(self, exc_type, exc_val, exc_tb): print('with中代码块执行完毕时执行我啊') with Open('a.txt') as f: print('=====>执行代码块') # print(f,f.name)
6. __call__()
对象加括号自动触发
class Student(): school = 'SH' # 调用类的时候触发 def __init__(self, name, age): self.name = name self.age = age def tell(self): print('name: %s, age: %s' % (self.name, self.age)) # 打印对象的时候,自动触发的函数 # 返回值只能是字符串 def __str__(self): return 'name:%s' % self.name # return 123 # 1. 手动执行del # 2. 程序执行完毕触发 def __del__(self): print('__del__') self.f.close() # 对象加括号自动触发 def __call__(self, *args, **kwargs): print('__call__') stu = Student('ly', 20)