抱歉,如果这是一个太简单的问题,但我只是一个python初学者,并且正在观看一些关于课程的教程视频。我试着自己添加一些东西,但做不到。代码如下:
class Dog:
dogs = []
def __init__(self, name):
self.name = name
self.dogs.append(self)
@classmethod
def num_dogs(cls):
return len(cls.dogs)
@classmethod
def dogs_names(cls):
for i in cls.dogs:
return cls.dogs[i.name]
@staticmethod
def bark(n):
"""barks n times"""
for _ in range(n):
print("Bark! ")
tim = Dog("Tim")
jim = Dog("Jim")
print(Dog.num_dogs())
print(Dog.dogs_names())
所以我知道dogs_names()方法看起来很愚蠢,但我希望您理解我的观点。每次只返回cls.dogs就可以访问dogs列表,但是如何访问列表中每个项目的名称变量呢?
谢谢你的帮助。
2条答案
按热度按时间t5zmwmid1#
你可以做:
您还可以使用列表控制:
db2dz4w82#
有两件事不对:
您将立即返回,而不是允许生成结果列表。
i
是一个例子Dog
所以i.name
是一个狗名,而不是狗名列表中的索引Dog
指数首先构建列表,然后在循环完成构建列表后返回它。