python - 在类初始化时使用数组中的变量定义函数

标签 python arrays class numpy initialization

我写了以下内容,

import numpy as np
class FV:
    def __init__(self,x=0,a=0,b=0,c=0):
        r=np.array([a,b,c])
        self.t=x
        self.s=r

但它告诉我:

__init__() got an unexpected keyword argument 'r'

当我输入P2 = FourVector(ct=99.9, r=[1,2,3])

最佳答案

您正在传递数组,而不是在函数内创建它,您似乎想要在给定行r=np.array([a,b,c])的情况下执行此操作。

假设 xct 相同,请尝试 P2 = FourVector(99.9,1,2,3)。否则,请确保您决定是要调用参数 ct 还是 x。您传入 ct 但在函数内使用 x

您的类也存在名称问题,您将其声明为FV,但您尝试将其用作FourVector。试着对你的名字更加小心一点!

考虑到一些相关决定,您的代码应如下所示:

import numpy as np
class FourVector:
    def __init__(self,ct=0,a=0,b=0,c=0):
        r=np.array([a,b,c])
        self.t=ct
        self.s=r

然后您可以将其称为

P2 = FourVector(99.9,1,2,3)

另请注意,由于您先分配了 r,然后分配了 s=r,所以您只需执行 self.s=np.array([a,b, c]) 直接,除非您有某种原因单独保留 r

关于python - 在类初始化时使用数组中的变量定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984776/

相关文章:

python - 如何在不知道子类名称的情况下访问 django 中对象的子类?

arrays - Fortran 03/08(gfortran 编译器)中使用无限多态类型进行数组操作

javascript - ES5/6 类中多个相同的 getter/setter 函数的好的解决方案?

c# - 如何检查一个对象是否等于同一类的新对象?

python - 使用 PEP 435 兼容枚举的带有枚举的 SQLAlchemy 列产生表创建错误

python - 在 Windows 10 上安装 oTree 时无法启动项目 ('otree' 与现有 Python 模块的名称冲突)

python - 如何将只有一个元素的numpy数组插入到mysql数据库中?

Java数组的有效使用/替代

javascript - 复制数组 --> 堆栈或堆溢出?

python - 有没有更好更易读的方法来合并 Pandas 中的列