class Complex:
realpart,imagpart=0,0
def __init__(self):
self.r = Complex.realpart
self.i = Complex.imagpart
x = Complex()
上面的代码工作,xr,xi =(0,0),但是当类名很大时,Class_name.Data_member访问类数据的方式看起来很冗余,有没有办法改进类的作用域,所以我不必使用Complex.imagpart?只需使用self.r = realpart?
答案 0 :(得分:1)
这是你想要做的:
class Complex(object):
def __init__(self, realpart=0, imagpart=0):
self.realpart = realpart
self.imagpart = imagpart
访问成员变量是“self.realpart”调用。您使用的是类属性,可以这样访问:
Complex.some_attribute
答案 1 :(得分:0)
没有。您在上面指定的数据成员是该类的属性,因此需要指定类名。如果您愿意,可以使用self.r = self.__class__.realpart
。好像你只是将这些值用作初始值设定项,因此realpart
和imagpart
完全是多余的。
(另请注意,Python本身支持复数。只需编写5 + 3j即可。)