python之路——27

复习

1.组合: 什么有什么的关系
一个类的属性是另一个类的对象
3.三大特性
1.继承
1经典类深度优先,新式类广度优先(重要)
2抽象类和接口类
3父类(超类,基类) 子类(派生类)
4子类调用方法和属性
5super python3中,根据广度优先寻找调用
2.多态
1.鸭子类型
3.封装:
1.私有的,只能在类内部调用,子类无法继承
4.三个装饰器
1.classmethod ***** 面试
2.property ****
3.staticmethod ***+

学习内容

1.isinstance issubclass
2.反射:用字符串类型的名字,去获取变量
1.eval 会给代码带来安全隐患,但是反射没有
2.反射对象的方法——得到一个绑定方法,加()调用
3.反射类的属性(静态属性),类的方法(类方法)
3.__str__
与 %s str() print(打印一个对象,就是调用对象.__str__) 实际上都是调用__str__方法
4.__repr__
与 %r repr() 实际上是调用__repr__
repr 是str的备胎
5.__len__
len() 相关
6.__del__
与del相关,当自定义类中定义了__del__方法,外部调用del,会同时调用object和自定义类中的__del__
程序结束时,python解释器会释放所有变量
python解释器会将不再使用或者闲置的变量清除
__del__析构函数:在删除一个对象之前进行收尾工作
7.__call__
类中定义__call__方法,实例化后加(),调用call方法

代码区

# class A:
#     dic = {'aa':'bb'}
#     def func(self):
#         print("ssssss")
#     @classmethod
#     def fun(cls):
#         print('funny')
# a1 = A()
# a1.name = 'alex'
# print(getattr(a1,'name'))
# print(getattr(a1,'func'))
# if hasattr(a1,'func'):
#     getattr(a1,'func')()
# print(getattr(A, 'dic'))
# print(getattr(A, 'fun'))
#
#
# import my
# print(getattr(my,'a'))
# print(getattr(my,'mya'))
#
# def qq():
#     print('qq')
# import sys
# getattr(sys.modules[__name__],'qq')()
# q = input('>>>')
# print(getattr(sys.modules[__name__],'q'))
#
#
# import time
# time.time()
# rec = input('>>>')
# if hasattr(time,'rec'):
#     getattr(time,'rec')()
class A:
    def __call__(self):
        print('me')
a = A()
a.__call__()

猜你喜欢

转载自www.cnblogs.com/wan2-0/p/10797309.html