我目前正在写一些代码。有人可以向我解释"product.authors.append(self)"
行是做什么的吗?我似乎无法理解逻辑。
谢谢!
class Software:
def __init__(self, name, language):
self.name = name
self.language = language
self.version = 0.1
self.authors = []
print(f"New software {self.name} v{self.version} created!")
class Programmer(Person):
def __init__(self, name, age, gender, languages):
super().__init__(name, age, gender)
self.languages = languages
self.products = []
print(f"Programmer {self.name} has joined the ranks")
def write_code(self, product, new=True, version=0.1):
print(f"{self.name} is working on {product.name} v{product.version}")
product.authors.append(self)
if new:
self.products.append(product)
else:
product.version = version
print(f"{product.name} v{version} released!")
将程序员人员(当前对象)添加到产品作者列表。
您可以按照您的代码来解释它,如下所示:如果程序员在软件中编写代码,请将其添加到产品作者列表中。
产品将是一个对象,提供有关产品的信息,包括作者。由于作者都是程序员,因此authors
的此属性Product
是Programmer
对象的列表。 product.authors.append(self)
行将self
(您所在的类的实例)添加到作者列表中。
这意味着当调用Programmer().write_code()
函数时,作为程序员的人员将获得他们正在研究的产品的荣誉。
产品属于软件类型,因此product.authors引用了Software中的列表。
def __init__(self, name, language):
self.name = name
self.language = language
self.version = 0.1
self.authors = [] #THIS ONE
print(f"New software {self.name} v{self.version} created!")
将新元素添加到列表中。
so
product.authors.append(self)
向属于产品的作者添加新元素
添加的元素是Programmer类型的对象
[一个人编写代码时,他将被添加到产品的作者列表中。
从代码中,我推断产品类具有一个“作者”数据结构(列表,字符串或集合),调用该函数时会将当前程序员添加到该数据结构。