如何在python的子类中创建其他属性?

我想为子类添加一个附加属性。我生成了一个类Plant。现在,我将创建一个Plant_w_ID类,该类是Plant的派生子类。 Plant_w_ID类应包含一个附加属性plant_id,该属性保存每个植物的标识符。植物标识符可以作为参数传递给创建函数,例如plant = Plant_w_ID('P1')

我还需要在Plant_w_ID类中定义一个“ getter”方法来相应地检索ID属性的值。

我可以知道如何

i)为Plant_w_ID类包括一个附加属性plant_id

ii),我不知道如何将植物标识符作为参数传递给创建函数。 plant = Plant_w_ID('P1')

iii)在Plant_w_ID类中定义一个“获取”方法来相应地检索ID属性的值

最后,使用吸气剂方法的目的是什么? 这是我写的脚本。谢谢。

import random
genome_length =50
bases = ['A','C','T','G']

class Plant:
   def __init__(self):
   self.genome = []
   self.genome = [random.choice(bases) for _ in range(genome_length)]

class Plant_w_ID(Plant):
   def __init__(self,plant_id):
       super().__init__()
       self.plant_id = plant_id

   def add_plant_id(self,plant_id):
       for i in range(len(plant_list)):
       plant_id='P'+str(i)
       plant_list.append(plant_id)

def main():
    plant_list = []
    for x in range (5):   
        plant =Plant_w_ID()
        plant_list.append(plant)
konjakys 回答:如何在python的子类中创建其他属性?

您可以仅继承 Plant 类并添加所需的其他属性,如下面的示例 plant_id 所示。 另外,不要忘记使用相关属性调用Plant __init__函数。

可以通过几种方法来获取新属性(以下显示了两个示例)

import random
genome_length = 50                  
bases = ['A','C','T','G']        

class Plant:
    def __init__(self):
        self.genome = list()
        self.genome = [random.choice(bases) for _ in range(genome_length)]

    def get_genome(self):
        return self.genome

class Plant_w_ID(Plant):
    def __init__(self,plant_id):
        super().__init__()
        self.plant_id = plant_id

    @property
    def plant_id(self):
        return self.plant_id

    def get_plant_id(self):
        return self.plant_id

def main():
    plant_list = []
    for x in range (5):   
        plant = Plant_w_ID('P{0}'.format(x))
        plant_list.append(plant)
本文链接:https://www.f2er.com/2862781.html

大家都在问