幽灵乘客例子:

python不要使用可变对象作为参数的默认值

 

 

如上:如果为空时,bus2和bus3引用的是相同的一个list,就会造成粗错误

 实际工作中,如果不想改变某个参数值,那么通过以上这种赋值也会改变

python不要使用可变对象作为参数的默认值

解决方式self.passenger=list(passenger),相当于把list(passenger)=passenger

举个例子:

a和c引用的是相同的list对象  但b已经不是另外一个新对象的引用了

a和c同时改变,b的改变是独立的

python不要使用可变对象作为参数的默认值

 

 

python不要使用可变对象作为参数的默认值

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

如果一定要使用?应该怎样定义可变类型默认值呢

def __init__(self,passenger=None):
if passenger ==None:
self.passenger=[]

 这样的话,就是为每个空值分配不同的对象

python不要使用可变对象作为参数的默认值

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-28
  • 2021-10-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-01
  • 2021-11-23
  • 2022-12-23
  • 2022-01-10
  • 2022-12-23
  • 2021-09-22
相关资源
相似解决方案