回答
你可以使用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