【发布时间】:2013-06-05 01:27:36
【问题描述】:
我一直想知道是否有更简单的方法可以将类属性分配给方法本地命名空间。例如,在dosomething 方法中,我明确引用了self.a 和self.b:
class test:
def __init__(self):
self.a = 10
self.b = 20
def dosomething(self):
a = self.a
b = self.b
return(a + b)
但有时我有很多变量(超过 10 个),输入和查看会变得很乱 - 我会在方法的开头有一堆 var = self.var 语句。
有什么方法可以让这种更紧凑的方式变得更紧凑吗? (我知道更新local() 不是一个好主意)
编辑:理想情况下,我想要的是:
def dosomething(self):
populate_local_namespace('a', 'b')
return(a + b)
【问题讨论】:
-
你为什么首先尝试这样做?有一个看起来像“
return (self.a + self.b)”的单行dosomething方法有什么问题?您希望从中获得什么好处? -
我有我的理由 - 特别是,我正在做复杂的计算,并且许多
self.的表达式很长而且很丑。 -
@munn 你为什么要用那些 self 的 .. 来污染代码
标签: python class namespaces