如何在python中的子类中创建附加属性?
How to create an additional attribute in the subclass in python?
我想为子class 添加一个附加属性。我生成了一个 class 植物。现在我要创建一个 Plant_w_ID class,它是 Plant 的派生子 class。 Plant_w_ID class 应该包含一个附加属性 plant_id,它包含每个植物的标识符。植物标识符可以作为参数传递给创建函数,例如植物 =Plant_w_ID('P1') 。
我还需要在 Plant_w_ID class 中定义一个 'getter' 方法来相应地检索 ID 属性的值。
请问可以
i) 在 Plant_w_ID class
中包含一个附加属性 plant_id
ii) 而且我不知道如何将植物标识符作为参数传递给创建函数。植物 = Plant_w_ID('P1')
iii) 在Plant_w_ID class中定义一个'getter'方法来相应地检索ID属性的值
最后,getter 方法的目的是什么?
这是我写的脚本。谢谢。
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)
您可以继承 Plant class 并添加您想要的附加属性,如以下示例所示 plant_id。
此外,不要忘记使用相关属性调用 Plant __init__
函数。
getter可以通过几种方法来获取新的属性(以下显示两个示例)
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)
我想为子class 添加一个附加属性。我生成了一个 class 植物。现在我要创建一个 Plant_w_ID class,它是 Plant 的派生子 class。 Plant_w_ID class 应该包含一个附加属性 plant_id,它包含每个植物的标识符。植物标识符可以作为参数传递给创建函数,例如植物 =Plant_w_ID('P1') 。
我还需要在 Plant_w_ID class 中定义一个 'getter' 方法来相应地检索 ID 属性的值。
请问可以
i) 在 Plant_w_ID class
中包含一个附加属性 plant_idii) 而且我不知道如何将植物标识符作为参数传递给创建函数。植物 = Plant_w_ID('P1')
iii) 在Plant_w_ID class中定义一个'getter'方法来相应地检索ID属性的值
最后,getter 方法的目的是什么? 这是我写的脚本。谢谢。
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)
您可以继承 Plant class 并添加您想要的附加属性,如以下示例所示 plant_id。
此外,不要忘记使用相关属性调用 Plant __init__
函数。
getter可以通过几种方法来获取新的属性(以下显示两个示例)
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)