当我执行时,它抛出错误:
....
......
class Dog(Pet):
File "D:\untitled2\Pet.py", line 13, in Dog
Dog.numberoflegs = 4
NameError: name 'Dog' is not defined
Fish.numberoflegs = 0
NameError: name 'Fish' is not defined
请帮忙
class Pet:
numberoflegs = 0
def sleep(self,name):
print("the {} sleeps".format(name))
def countlegs(self):
print("I have {} legs".format(self.numberoflegs))
#type = input("enter pet type")
#dog.sleep(type)
class Dog(Pet):
Dog.numberoflegs = 4
def bark(self):
print ("the dog sounds woof")
class Fish(Pet):
Fish.numberoflegs = 0
kuta = Dog()
kuta.countlegs()
kuta.bark()
machi = Fish()
machi.countlegs()
您可以用以下方式定义类
Dog
:您的类属性
numberoflegs
不需要Dog.
出现错误是因为您试图在“创建”时使用该类,甚至在使用
Dog
类之前更改:
致:
它已经具有类的作用域,您还不能通过名称引用该类,因为它仍在定义中
类属性只是添加到类中,而不是以类名作为前缀:
您可以使用
Dog.numberoflegs = 3
更改它(如果默认情况下您有三条腿的狗)类属性在所有实例之间共享
看
相关问题 更多 >
编程相关推荐