面向对象的内置函数

面向对象的内置函数

 

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)

 

 

 

END

posted @ 2021-12-07 19:37  Snails蜗牛  阅读(51)  评论(0)    收藏  举报