如何使用类的方法

时间:2019-11-05 02:29:44

标签: python

我想使用我在动物名单上的一类中制作的方法,但不确定如何这样做。

我尝试过调用列表中的方法,但是我想是因为该方法在我的类中,所以无法识别它。

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。任何帮助将不胜感激,如果我对整个问题的措辞不够好,我很乐意进一步解释。

2 个答案:

答案 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()