回答
你可以使用type来创建一个新的类,然后实例化它。像这样:
>>> t = type('test', (object,), {})()
>>> t
<__main__.test at 0xb615930c>
类型的参数是:类名称,基类的元组和对象的字典。其中可以包含函数(对象的方法)或属性。
实际上,你可以缩短第一线
>>> t = type('test',(), {})()
>>> t.__class__.__bases__
(object,)
因为默认情况下类型创建从对象继承新式类。
type
在Python中用于metaprogramming。
但是,如果你只是想创建一个对象的实例。然后,只需创建它的一个实例。就像lejlot所暗示的那样。
像这样创建一个新类的实例有一个重要的区别,这可能是有用的。
>>> a = object()
>>> a.whoops = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'whoops'
凡为:
>>> b = type('',(), {})()
>>> b.this_works = 'cool'
>>>
你是什么意思的“空对象”?实例类object
?你可以简单地运行
a = object()
或者你的意思是初始化为空引用?然后你可以使用
a = None
不知的OP将是什么能与''a''定义成''对象做()''或''None''因为在这种情况,''a''没有名称空间'__dict__'',没有属性可以添加到''a''中,例如''ax = 10''。 – eyquem
一个简单的,不那么可怕的前瞻性的方法来创建一个空的(-ish)目的是利用以下事实:函数是Python对象,包括Lambda功能:
obj = lambda: None
obj.test = "Hello, world!"
例如:
In [18]: x = lambda: None
In [19]: x.test = "Hello, world!"
In [20]: x.test
Out[20]: 'Hello, world!'
我喜欢这个解决方案,因为不需要给名字 –
嗯,但是它有缺点,分配给'x .__ class __。somefunc' –
是的,在Python 3.3中添加了SimpleNamespace
与对象不同,使用SimpleNamespace可以添加和删除属性。如果SimpleNamespace对象使用关键字参数进行初始化,则这些对象会直接添加到基础名称空间中。
实施例:
import types
x = types.SimpleNamespace()
x.happy = True
print(x.happy) # True
del x.happy
print(x.happy) # AttributeError. object has no attribute 'happy'
非常好。我希望Python 3中的这一切变得更加简单! – nealmcb
- 1. 在python中创建一个JSON对象
- 2. 在Python中创建一个空的Popen()对象?
- 3. 创建一个空的通用对象
- 4. JAXB Unmarshall创建了一个空对象
- 5. 创建一个空对象引用
- 6. 如何C#创建一个空对象
- 7. 创建创建空对象
- 8. 创建另一个类的Python对象
- 9. 创建一个对象并在另一个对象中使用
- 10. 在一个对象中创建一个对象类
- 11. 创建空对象
- 12. 创建对象在Python
- 13. 在C++中创建一个iostream对象
- 14. 在kotlin中创建一个parcelable对象
- 15. 在XML中创建一个MoPubView对象
- 16. 在three.js中创建一个新对象
- 17. 在java中创建一个对象
- 18. 在javascript中创建一个regasm'ed对象
- 19. 在Powershell中创建一个ScheduleDefinition对象
- 20. 在jquery中创建一个对象
- 21. 在javascript中创建一个UtcDate对象
- 22. 在Java中创建一个XML对象
- 23. 在JNI中创建一个Integer对象
- 24. 在PHP中使用JSON创建一个空对象?
- 25. 如何在rails 4中创建一个空的activerecord对象?
- 26. Python,创建对象
- 27. 我想在python中创建一个模拟对象
- 28. 在python中创建一个类的对象
- 29. 如何在python中创建一个字节对象?
- 30. 如何在Python中创建一个3d对象/类?
你甚至可以将第一行缩短为't = type('',(),{})()' – Tiago