2 回答
TA贡献1806条经验 获得超5个赞
我得到了我正在寻找的答案。我想要一个对象充当可以存储类变量的容器,但我不知道我可以从其中创建该类的新对象!
import math
class Points(object):
def __init__(self, x, y, z):
self.x=x
self.y=y
self.z=z
def __sub__(self, no):
return Points((self.x-no.x),(self.y-no.y),(self.z-no.z))
def dot(self, no):
return (self.x*no.x)+(self.y*no.y)+(self.z*no.z)
def cross(self, no):
return Points((self.y*no.z-self.z*no.y),(self.z*no.x-self.x*no.z),(self.x*no.y-self.y*no.x))
def absolute(self):
return pow((self.x ** 2 + self.y ** 2 + self.z ** 2), 0.5)
正如您所看到的,使用点(即类 Points 的构造函数),我可以存储任何操作的结果,并将其作为对象返回,同时不更改我的输入对象。
TA贡献1884条经验 获得超4个赞
如果您想要做的是重用已传递给类对象的变量,则只需在语句中__init__或在使用它的函数中复制它即可。
例如
class Foo:
def __init__(self, my_var1, my_var2):
self.my_var1 = my_var1
self.my_var2 = my_var2
def bar(self):
bar_var1 = self.my_var1
bar_var2 = self.my_var2
bar_var1 = bar_var1 + bar_var2
return bar_var1
尽管如此,我对为什么你试图self
在cross
函数中返回(就像self
类参数一样)感到有点困惑,而且你似乎没有在其预期目的中使用它。
添加回答
举报