如果不在__init__中,则如何添加方法属性

问题描述 投票:0回答:3

如何从外部函数向不是qazxsw poi的方法添加属性。

例如

__init__
python list class
3个回答
3
投票

如上面的评论所述:

创建一个实例:

class Year:
    def __init__(self):
        self._list = []
    def add_year(self,year):
        self._year = year
        self._list.append(self._year)
def main():
    year = 1998
    #how do I get this year into the year class to add to list?

并传递要分配的值

yobj = Year()

0
投票

方法year = 1998 yobj.add_year(year) 除了在实例化对象时执行它没有什么特别之处。这意味着,您可以在代码中的任何位置为__init__的实例分配或获取属性,而不仅仅是在Year中。

__init__

-1
投票

以下是一个例子,看看是否有帮助

class Year:
    def __init__(self):
        # You can define an attribute in __init__
        self.year_list = []

    def add_year(self, year):
        # You can define and access an attribute in any method
        self.last_year_added = year
        self.year_list.append(year)

def main():
    year = 1998

    # You must instantiate a Year first
    my_year = Year()

    # Then execute the method add_year
    my_year.add_year(year)
    my_year.add_year(year + 1)

    print(my_year.year_list)  # [1998, 1999]
    print(my_year.last_year_added) # 1999


    # Note that you can even add attribute outside methods
    my_year.month = 'December'

    print(my_year.month) # December

main()

输出如下。

class Dog:

    # Class Attribute
    species = 'mammal'

    # Initializer / Instance Attributes
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # instance method
    def description(self):
        return "{} is {} years old".format(self.name, self.age)

    # instance method
    def speak(self, sound):
        return "{} says {}".format(self.name, sound)

# Instantiate the Dog object
mikey = Dog("Mikey", 6)

# call our instance methods
print(mikey.description())
print(mikey.speak("Gruff Gruff"))

如果你想在python中学习更多关于面向对象的方式编程,请按照下面的教程 - Mikey is 6 years old Mikey says Gruff Gruff

© www.soinside.com 2019 - 2024. All rights reserved.