Python OOP、类和实例

2024-05-21 12:02:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在学习面向对象的Python, 我有一个关于使用列表作为类属性的问题。问题是,当我在对象中更改某些内容时,它也会更改该类属性

class Backet:
   number_of_stone = 0
   stone_collection = []
   
   def __init__(self,name):
      self.name = name
      self.number_of_stone +=1
      self.stone_collection.append(self.name)

stone_one = Backet('One')
stone_two = Backet('Two')

当我打印出stone_onestone_two.number_of_two时,它们是=1(我知道这是正确的)。但是当我打印stone_onestone_two.stone_collection时,它们都给出了一个列表["One","Two"]

我的问题是它应该是stone_one.stone_collection = ['One']stone_two.stone_collection = ['Two']


Tags: of对象nameselfnumber列表属性面向对象
1条回答
网友
1楼 · 发布于 2024-05-21 12:02:00

stone_collection更改为实例变量:

class Backet:
   def __init__(self, name):
      number_of_stone = 0
      stone_collection = []
      self.name = name
      self.number_of_stone +=1
      self.stone_collection.append(self.name)

stone_one = Backet('One')
stone_two = Backet('Two')

相关问题 更多 >