类 + () == 对象
self.__private
:只能对象自己访问/提供对外访问接口/对象._类名__私有变量
@property
的骚操作:可以用来获取处理值
@property
def usd_percent_change_7d(self) -> float:
num = self.data['quotes']['USD']['percent_change_7d']
if num is None:
return 0
return float(num)
和方法同一级,没有self修饰,共同存在于内存中 == 类定义时也会一起被定义,不会等到实例化,且实例化之后,如果实例通过obj.class_attr方式修改类变量,则实例将会自己生成一个实例自有的属性,实例是不会修改到类变量的
改动类变量只能通过类名来调用, 因为对象赋值一个属性是会重新创建的,对象相当于一个作用域
class X:
hi = []
a = X()
b = X()
a.foo = 1 # a创建了一个属性
print(a.foo)
print(b.foo) # b是没有foo这个属性的
__del__
:引用被清空,自动执行,程序运行完毕,执行此函数,python中del关键字时删除的是变量名,而不是删除内存中的变量指向的地址存储的数据