如何从外部函数向不是qazxsw poi的方法添加属性。
例如
__init__
如上面的评论所述:
创建一个实例:
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()
方法year = 1998
yobj.add_year(year)
除了在实例化对象时执行它没有什么特别之处。这意味着,您可以在代码中的任何位置为__init__
的实例分配或获取属性,而不仅仅是在Year
中。
__init__
以下是一个例子,看看是否有帮助
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