python中的__new__方法的重写

new方法重写的步骤比较固定,直接上代码吧

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class MusicPlayer(object):

# new方法的重写,是一个静态方法,必须主动传递cls参数
def __new__(cls, *args, **kwargs):
# 1.创建对象时,new方法会被自动调用
print("创建对象,分配空间")

# 2.为对象分配空间
instance = super().__new__(cls)
# 3.返回对象的引用
return instance

def __init__(self):
print("111")


player = MusicPlayer()
print(player)

运行结果

1
2
3
创建对象,分配空间
111
<__main__.MusicPlayer object at 0x0000000003A0D128>
打赏了解一下?
0%