gpt4 book ai didi

Python 简单的裸对象

转载 作者:IT老高 更新时间:2023-10-28 22:17:39 25 4
gpt4 key购买 nike

创建可以为其分配属性的裸对象的最简单方法是什么?

具体用例是:我正在对一个Django对象实例进行各种操作,但有时该实例为None(实例上有)。在这种情况下,我想创建最简单的假对象,以便我可以为其属性分配值(例如。myobject.foo = 'bar')。

基本上我正在寻找与这段 Javascript 等效的 Python:

myobject = {}
myobject.foo = 'bar'

我知道我可以为此使用模拟对象/库,但我希望有一个非常简单的解决方案(就像上面的 Javascript 一样简单)。有没有办法创建一个裸对象实例?比如:

myobject = object()
myobject.foo = 'bar'

最佳答案

你需要先创建一个简单的类:

class Foo(object):
pass

myobject = Foo()
myobject.foo = 'bar'

你可以像这样使它成为一个单行:

myobject = type("Foo", (object,), {})()
myobject.foo = 'bar'

type 的调用与前面的 class 语句的功能相同。

如果你想真的最小化......

myobject = type("", (), {})()

关键是内置类型(如listobject)不支持自定义属性,所以需要使用创建类型class 语句或对 type 的 3 参数版本的调用。

关于Python 简单的裸对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com