'''
#魔术方法前后有__,没有调用魔术方法它也会执行,只要我创建一个对象,系统就会默认执行魔术方法
'''
class Phone:
#类属性
brand='huawei'
#1、初始化魔术方法:初始化对象时触发
#作用: 可以给每个对象统一动态创建对象属性
def __init__(self):
self.price=4999#对象属性初始化,该类创建的所有对象都有这个属性,且初始值为4999
#2、实例化魔术方法:实例化对象时触发(没事不要重写这个魔术方法)
# 作用: 可以给每个对象分配内存空间
# def __new__(cls, *args, **kwargs): # 一般不要重写
#p=Phone()
# 一定有return,将开辟空间的内存地址返回给__init__,执行完__init后再给对象p赋值这个地址
#3、输出魔术方法:打印对象名时,自动触发去调用__str__里面的内容,注意一定要加return
# 作用: 相当于重写toString方法
def __str__(self): # 类似于java的toString,这样我们每次打出这个对象,都是它的内容而不是地址
return '品牌是:' + self.brand + ',价格:' + str(self.price)
p=Phone()
print(p)
09-13