python - 如何恢复实例以使用类属性而不是阴影实例属性?
问题描述
如果我有一个类和它的两个实例:
class Foo:
var = 1
a = Foo()
b = Foo()
这两个实例的var
属性都反映了我将为其设置的值Foo
:
Foo.var = 2
print(a.var) # 2
print(b.var) # 2
但是,当我设置var
为 just时a
,a.var
不再与以下内容“同步” Foo.var
:
a.var = 3
Foo.var = 4
print(a.var) # 3
print(b.var) # 4
我可以在不创建新实例的情况下以某种方式“还原”它,以便a.var
再次反映 的值Foo.var
吗?
明显的尝试不起作用(显然),因为整数不是引用:
a.var = Foo.var
print(a.var) # 4
Foo.var = 5
print(a.var) # 5
解决方案
实例属性可以被删除,然后a
将再次使用var
定义在Foo
:
del a.var
Foo.var = 6
print(a.var) # 6
推荐阅读
- animation - 什么是 CALayer 和 CAGradientLayer?
- android-studio - 在 Android Studio 中看不到我的 Windows 名称
- c# - 如何同步播放来自不同来源 VideoLAN.LibVLC.UWP 的视频和音频?
- python - (ConditionA or ConditionB) 和 (ConditionB or ConditionA) 表现不同
- sublimetext3 - 如何更改 Sublime Text 3 的 Browsersync 插件的默认浏览器?
- azure - Microsoft Graph API 中缺少 Azure B2C 注册电子邮件?
- python - 在 Python 中从 excel 中读取行和列并将它们放入数组中
- javascript - 在地址栏中粘贴“javascript:alert('hi')”是否被阻止?
- angular - 在 Ionic + Angular 插件中使用 Firebase 安装推送通知后,无法在 android 中创建构建和运行
- c# - 如何获取 Kubernetes 服务主体 azure 的对象 ID 和应用程序 ID