这行代码如何在python中工作?

问题描述 投票:-1回答:4

我目前正在写一些代码。有人可以向我解释"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!")
python
4个回答
0
投票

程序员人员(当前对象)添加到产品作者列表

您可以按照您的代码来解释它,如下所示:如果程序员在软件中编写代码,请将其添加到产品作者列表中。


0
投票

产品将是一个对象,提供有关产品的信息,包括作者。由于作者都是程序员,因此authors的此属性ProductProgrammer对象的列表。 product.authors.append(self)行将self(您所在的类的实例)添加到作者列表中。

这意味着当调用Programmer().write_code()函数时,作为程序员的人员将获得他们正在研究的产品的荣誉。


0
投票

产品属于软件类型,因此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类型的对象


0
投票

[一个人编写代码时,他将被添加到产品的作者列表中。

从代码中,我推断产品类具有一个“作者”数据结构(列表,字符串或集合),调用该函数时会将当前程序员添加到该数据结构。

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