包装对象的最佳 Python 方式是什么?
我希望能够用 Python 包装任何对象。以下似乎不可能,你知道为什么吗?
class Wrapper:
def wrap(self, obj):
self = obj
a = list()
b = Wrapper().wrap(a)
# can't do b.append
谢谢你!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试使用 getattr python magic :
Try with the getattr python magic :
也许您正在寻找的,比您尝试做的更优雅的工作是:
亚历克斯·马泰利的束类。
链接的配方页面中有可用的替代实现。
Perhaps what you are looking for, that does the job you are looking to do, much more elegantly than you are trying to do it in, is:
Alex Martelli's Bunch Class.
There are alternative implementations available in the linked recipe page.
您只是将变量 self 引用为wrap() 中的某个对象。当wrap()结束时,该变量被垃圾收集。
您可以简单地将对象保存在 Wrapper 属性中来实现您想要的
You're just referencing the variable self to be a certain object in wrap(). When wrap() ends, that variable is garbage collected.
You could simply save the object in a Wrapper attribute to achieve what you want
您还可以通过覆盖 new 来执行您想要的操作:
You can also do what you want by overriding new: