【发布时间】:2025-12-29 00:10:16
【问题描述】:
我正在创建一个名为Pet 的类。我将我的变量设为私有,因此没有人可以修改它们(确保封装)。我想使用私有变量创建一个列表。
然后我希望能够将我的pet_list list outside 称为我将在以后使用它的类(我是否需要在Pet 类中为我的列表创建一个getter这样做?)。
我是 python 新手,但我正在尝试使用面向对象的原则进行编码。
到目前为止,这是我的代码。
我在想,因为我的pet 变量是私有的,我需要使用setter 来设置列表中的Pets?但是当我想打印 set_pet() missing 1 required positional argument: 'pet' 时出现此错误。
class Pet:
def __init__(self, pet ):
self.pet = pet
def set_pet(self, pet):
self.__pet = pet
def get_pet(self):
return self.__pet
#creating list
pet_list = []
p = Pet
pet_list.append(p.set_pet("cat"))
pet_list.append( Pet("dogs"))
pet_list.append( Pet("fish"))
pet_list.append( Pet("horses"))
pet_list.append( Pet("birds"))
for obj in pet_list:
print(obj.pet)
【问题讨论】:
-
p = Pet("cat")?p = Pet只是给你一个类的别名。目前尚不清楚为什么您创建的那个与您放入列表中的其他人不同。最后你还需要get_pet(或阅读@property)。 -
不,它不是创建一个实例——你需要括号来调用类来获取一个实例。
标签: python list class oop getter-setter