【发布时间】:2011-01-05 18:05:44
【问题描述】:
class Complex:
realpart,imagpart=0,0
def __init__(self):
self.r = Complex.realpart
self.i = Complex.imagpart
x = Complex()
上面的代码有效,x.r,x.i = (0,0),但是当类名很大的时候,Class_name.Data_member 访问类数据的方式看起来很多余,有没有什么办法可以改进类的作用域,所以我不必使用 Complex.imagpart?只需使用 self.r = realpart?
【问题讨论】:
-
1.不,这不是 Visual Basic。 2、为什么不用内置的
complex类型? -
可能是不可能的(如果不大幅修改语言,无论如何你都无法实现) - 但是
C = ReallyReallyLongClassName并改用C.realpart怎么样?并考虑它是否应该是一个类级别的常量......(编辑@AdniDog:你错过了重点。VB 不是唯一与 Python 不同范围的语言,类名只是一个 - 尽管不是很好选择 - 示例) -
无论如何,在 Python 中缩短语句是没有用的。
C = WayTooLongClassName是一个解决方案,但我不记得曾经在 Python 中使用过类似的东西。我故意选择VB作为例子,因为那里的语句可能会很长。 -
Python 内置了对复数的支持;你可以使用
x = 0+0j。
标签: python class namespaces scope