https://gist.github.com/Kilerd/b0f51e66cc1a874fa450ca6cae98bb6b 以上是 GIST 地址
写的原因:
在一个项目里面,我想类里面的两个元素的值永远保持一样
用法大概是这样的:
class A(Alias):
def __init__(self):
self.a = 1
self.alias("b", "a")
a = A()
print(a.a, a.b)
a.a = 2
print(a.a, a.b)
a.b = 3
print(a.a, a.b)
执行结果是:
1 1
2 2
3 3
同时,支持简单的递归用法:
class B:
a = 1
class C(Alias):
def __init__(self):
self.b = B()
self.alias("a", "b.a")
c = C()
print(c.b.a, c.a)
c.b.a = 2
print(c.b.a, c.a)
c.a = 3
print(c.b.a, c.a)
输出结果
1 1
2 2
3 3
代码没经过认真测试,边缘情况可能会出错,谨慎使用
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.