python - 类的初始值,python

标签 python

我已经编写了一个模拟代码,我想为我的代码插入初始值。

some def are here,

class multipole:

    def q(self, f1,f2,f3):
        t=0.
        tm=0.
        xp = idistribution(j,m) # initial xp values it is a list of particles velocities
        while t< k:
           rk(t,m,f1,f2,f3,xp) # calculate new xp value
           xp.append(xxp[1])
        return xp

    def h(self, f1,f2,f3):
        t=0.
        tm=0.
        xp = idistribution(j,m) # initial xp values it is a list of particles velocities
        while t< k:
            rk(t,m,f1,f2,f3,xp) # calculate new xp value
            xp.append(xxp[1])
        return xp
if __name__ == "__main__":
    qp=multipole()
    quxp=qp.q(0.,0.,0.)
    hxp=qp.h(0.052,0.,0.)

我的问题是,当我调用 xp=idist(j,m) 时,它将返回随机分布的 ionic 速度,但我想对两个类方法(q 和 h)使用相同的分布,我该怎么做?提前致谢。 (我是Python新手,我正在尝试从一些网页学习它)

最佳答案

将其设为类属性并计算一次:

class Multipole:
    xp = idistribution(j,m) 
    def q(self, f1,f2,f3):
        t=0.
        tm=0.
        xp = Multipole.xp[:]

如果它是一个平面列表,您可以进行浅复制,如果您不复制方法中对 xp 的任何更改,则将反射(reflect)在引用 Multipole 的任何地方。 xp.如果它包含其他对象,您将需要执行 copy.deepcopy

关于python - 类的初始值,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28676534/

相关文章:

python - 模型方法关注点分离

Python包-aiohttp有警告信息 "Unclosed client session"

python - Python 中的颜色编码数字类似于 Excel 条件格式

python - 如何用 Pandas 计算两个数据帧之间的百分比差异?

python - to_latex : Incorrect Encoding for Strings (with Backslashes)

python - 如何在 django admin 中创建分组下拉列表?

python - 值错误: Can only compare identically-labeled Series objects

python - 使用 Python Selenium 从 span 中提取日期

python - 将 Cmap 值转换为 PIL.Image 的 RGB

python - 用 Nose 控制平行测试