1
2
我不确定这是否足够,但我认为下面的修改既可以用作原始单例,也可以用作普通类。有相当多的样板文件,但它是与类隔离的,而不是使用该类的代码。
基本上,您将对每个方法执行以下操作:
例如,
我会犹豫是否尝试进一步自动化这一点;与手动更新每个方法相比,您可能会花费更多的时间来识别和解决棘手的问题。 |
2
2
很难将所有副作用只能影响类本身的静态单例类转换为副作用只能影响实例对象的普通类。但也可以做相反的事情:只需使静态类拥有普通类的唯一实例并将其所有方法调用和属性访问委托给它,就可以将普通类转换为单例静态类。
元类可以完成这项工作。这一个创建了一个特殊属性
在您的示例中,非单例类将是b:
其单一委托人可声明为:
你可以简单地使用它:
|
3
1
|
4
0
谢谢你们所有人的好主意,他们帮助我实现了我想要的,在我遇到一个无聊的时刻之前: 我重命名了原始类,将其修复为正常工作,并用相同的旧名称创建了一个实例。 导入文件的所有代码都使用与原样相同的名称,没有任何修改。我真的应该早就想到这一点。说真的。 (有些测试)
这实际上是重新编译源代码。我确信正则表达式sub可以破坏一些用例,但它对我很有用。提供您的
这是一个简单的搜索和替换,与非常不爱
|
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
Henry · 使用Python将json重新格式化为键值对 2 年前 |
eymentakak · json字典类型错误:字符串索引必须是整数 2 年前 |
Qubix · 从熊猫数据帧创建相对熵矩阵 2 年前 |
guiguilecodeur · 如何删除我的词汇表中的重复元素 2 年前 |
Susheel P M · 这是关于if-else语句[关闭] 2 年前 |
Slartibartfast · 关于Python版本安装 2 年前 |