这个问题主要是关于好奇心。
作为一名java程序员,我常常对嵌套变量的所有点感到沮丧。 (在java中有一种事实上的标准,任何具有超过2个点的变量的行都需要重写)。反正是否有“重命名”嵌套变量,以至于我不必每次都输入所有的点?
例如
class MyClass():
def my_func():
if not self.app.arguments.foo:
self.app.arguments.foo = 'bar'
print self.app.arguments.foo
有没有办法写这个,这样我每次都不必输入全名self.app.arguments.foo
?
其次,使用变量的标准“pythonic”方式是什么。标准的python命名法会说只是一直使用所有的点吗?
正如我所说,这更多是关于好奇心。因此,假设我无法访问模块b。换句话说,我不能(更喜欢不想)编写getter和setter方法。
另请注意,self
很重要。我知道我可以使用导入进行重命名,但您无法导入self
。
答案 0 :(得分:0)
您可以为链中的最后一项使用临时变量:
b = self.a.b
if b.c:
b.c = 'foo'
print b.c
如果你没有分配,你可以一直到c
。
这更快一点,也更容易编写。但是,阅读可能会或可能不会更容易。