我有一个静态基类,我想封装子类。我找不到从静态外部类内部创建内部类的语法。
这是我想要的例子:
class Farm:
my_pet_cat = Animal("Meeeeooowww", "Fluffy")
class Animal:
def __init__(self, sound, fur):
self.sound = sound
self.fur = fur
def speak(self):
print(self.sound)
def pet(self):
return self.fur
NameError:未定义名称“动物”
我尝试使用Animal
访问self.Animal(...)
,但这没有用,因为显然Farm
没有自我,是一个静态类,并且是全部。如果将Animal
放在Farm
之外,我也可以成功访问它,但是我想将Animal
类封装在Farm
类中。
可以做到吗?
答案 0 :(得分:3)
在引用动物类以创建实例之前定义动物类。
class Farm:
class Animal:
def __init__(self, sound, fur):
self.sound = sound
self.fur = fur
def speak(self):
print(self.sound)
def pet(self):
return self.fur
my_pet_cat = Animal("Meeeeooowww", "Fluffy")
答案 1 :(得分:0)
为什么不使用名为Farm的模块,并在Farm
模块中定义类名Animal
?