Python - 如何在另一个方法中使用一个方法的属性

时间:2016-02-14 11:13:24

标签: python

假设这门课......

Class feed(object):

    def __init__ (self, food=0) :
        self.food = food
    def fill(self, water = 0): 
        self.food +=1
        self.water +=1

我如何创建另一种方法来利用'water','fill'方法的属性,而不在构造函数方法中包含水

1 个答案:

答案 0 :(得分:1)

声明self.foodself.water后,这些是整个对象的属性,而不仅仅是声明它们的方法。只要你解析{{1}对于类的新方法,它可以通过引用selfself.food等来访问对象的所有属性。例如:

self.water

但是,正如@jonrsharpe在注释中指出的那样,确保运行方法的顺序不会导致尝试引用尚未声明的属性的方法。优良作法是在类的class feed(object): # other functions def new_method(self): #This can now reference other object attributes 方法中定义所有属性。目前,在调用__init__之前,您不会声明self.water,这会因为在分配之前引用属性self.water += 1而引发AttributeError。这是一种阻止这种情况的方法:

self.water