我想使用我在动物名单上的一类中制作的方法,但不确定如何这样做。
我尝试过调用列表中的方法,但是我想是因为该方法在我的类中,所以无法识别它。
from src.ruminant import Ruminant
class Goat(Ruminant):
def __init__(self, age):
Ruminant.__init__(self, age)
def make_sound(self):
return Ruminant.make_sound(self) + " - baah"
#in another program vvv
animals = [Goat(2.0), Goat(2.1)]
这只是一个示例,因为我想尝试自己做一些事情,但是我不确定如何使它输出baah baah。任何帮助将不胜感激,如果我对整个问题的措辞不够好,我很乐意进一步解释。
答案 0 :(得分:7)
获得列表后:
animals = [Goat(2.0), Goat(2.1)]
只需:
for animal in animals:
animal.make_sound()
答案 1 :(得分:0)
确保您了解并可以解释方法是什么,尤其是方法基本上是类的一部分的概念。当您编写此代码时:
animal = Goat(2.0)
您创建了山羊对象(有时也称为山羊类的实例),并将其分配为名称{{1} }。有了对象后,可以调用为其定义的方法:
animal
在Python中,方括号animal.make_sound()
用于定义称为列表的特殊数据结构。当您键入:
[]
您正在创建两个单独的山羊实例,并将它们存储在列表中。该列表被分配了名称animals = [Goat(2.1), Goat(2.2)]
,可以使用特殊语法进行访问。
列表中的项目具有索引号,可用于访问单个成员。这是您访问列表中第一个对象的方式:
animals
请注意,大多数编程语言都是零索引,这意味着它们始于索引animals[0]
。因此,列表中的第二个对象将是:
0
就像以前一样,我们可以调用为列表中的项目定义的方法:
animals[1]
一旦您了解了它的工作原理,就可以问“如果我不知道列表中有多少只动物,那该怎么办?”在这种情况下,您需要认识到,对于列表中的每只动物,您都将执行相同的操作:调用animals[0].make_sound()
animals[1].make_sound()
。如果要在具有任意数量动物的列表上调用该方法,可以这样做:
make_sound()