正常方式:
class A:
def __init__(self):
self.a.b.c = 10
def another_method(self):
self.a.b.c = self.a.b.c * 10
别名方法:
class A:
def __init__(self):
self.a.b.c = 10
alias self.aliased = self.a.b.c # Creates an alias
def another_method(self):
self.aliased = self.aliased * 10 # Updates value of self.a.b.c
如何在Python中实现别名?我想这样做的原因是为了减少由于变量名太长而造成的混乱。这是一个多线程环境,因此简单地复制到本地变量是行不通的。
解决方法是使用getter和setter方法-幸运的是Python有the ^{} builtin 来隐藏这一点的丑陋:
通常,像
self.a.b.c
这样嵌套很深的属性是设计不好的一个标志-通常您不希望类必须知道3个关系之外的对象-这意味着对给定项的更改可能会在整个代码基中引起问题。最好是尝试让每个类处理它周围的类,而不是进一步。你很困惑。Python不复制任何隐式,它只存储引用,因此无论您在哪个环境中,它都可以工作。
你会得到
['AIB']
相关问题 更多 >
编程相关推荐