gpt4 book ai didi

python - 以下三种方式在构造函数中声明属性有什么区别?

转载 作者:行者123 更新时间:2023-11-30 22:03:11 25 4
gpt4 key购买 nike

def __init__(self):
self.score=[]

def __init__(self,score=[]):
self.score=score

def __init__(self,score):
self.score=[]

您能解释一下幕后发生的事情吗? TIA。

最佳答案

def init(self):
self.score=[]

self.score 始终初始化为空列表。

def init(self,score=[]):
self.score=score

调用者可以传入一个可选的列表参数。如果不这样做,则在定义函数时,self.score 将被初始化为空列表一次。 (请参阅 Common Gotchas: Mutable Default Arguments 了解为什么这是一个坏主意。)

def init(self,score):
self.score=[]

调用者必须传入一个列表参数(通常,该参数将被分配给 self.score,但您要抛出该值并设置 self.score到一个空列表)。第三个例子可能应该是:

def init(self, score):
self.score = score

关于python - 以下三种方式在构造函数中声明属性有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com