【发布时间】:2020-01-10 15:37:14
【问题描述】:
到目前为止,我主要使用 Python 进行数据分析,但有一段时间尝试实现一些东西。现在我正在尝试为一条鱼建立一个毒物动力学-毒物动力学模型,以分析化学物质对它们的影响。
所以给出以下代码:
import numpy as np
class fish():
def __init__(self):
self.resistance_threshold = np.random.normal(0,1)
我现在的问题是,假设我想初始化 fishclass 的多个实例(比如 1000 条鱼),每个实例对化学物质具有不同的抵抗力,以便对基于代理的种群进行建模。如何自动实现这一目标?
我想知道是否有什么东西可以使用例如索引作为变量名的一部分,例如:
for fishid in range(0,1000):
fishfishid = fish() # use here the value of fishid to become the variables name. E.g. fish1, fish2, fish3, ..., fish999
现在,即使有可能在 Python 中执行此操作,我总觉得实现这 1000 个实例是一种不好的做法。并且想知道是否有类似 OOP-Python 的方法。比如例如设置一个类“population”,在它自己的__init__function 中初始化它,但是我如何在不先初始化它们的情况下分配鱼?
任何提示、指针或链接将不胜感激。
【问题讨论】:
-
你能用鱼的字典吗?例如:
fishids = dict((fishid, fish()) for fishid in range(1000)) -
Matt Shin 的解决方案解决了能够通过fishid 找到
Fish对象的问题。字典也可以缩短查找时间。
标签: python oop initialization