如何在python中定义匿名类型
因此python是动态的。我应该能够随意地向类实例添加属性 我正在尝试这样做:如何在python中定义匿名类型,python,dynamic,python-2.7,Python,Dynamic,Python 2.7,因此python是动态的。我应该能够随意地向类实例添加属性 我正在尝试这样做: spam = None spam.eggs = [] 但显然,我无法将属性添加到None 如何将垃圾邮件定义为未定义的“空类”的实例,我可以在执行过程中向其添加属性?否,您可以向允许它的对象类型添加属性无,对象,类型,int等。不要这样做,因为它们是不可变的。否,您可以向允许它的对象类型添加属性无,对象,类型,int等。不要这样做,因为它们是不可变的。在Python 3.3+中使用: class Bag(objec
spam = None
spam.eggs = []
但显然,我无法将属性添加到None
如何将垃圾邮件定义为未定义的“空类”的实例,我可以在执行过程中向其添加属性?否,您可以向允许它的对象类型添加属性<代码>无,
对象
,类型
,int
等。不要这样做,因为它们是不可变的。否,您可以向允许它的对象类型添加属性<代码>无,对象
,类型
,int
等。不要这样做,因为它们是不可变的。在Python 3.3+中使用:
class Bag(object):
pass
spam = Bag()
spam.eggs = []
在Python 3.3+中,使用:
那么我需要先定义一个类吗?是的。您甚至不能向
对象的实例添加属性。(对象)
位的含义是什么?为什么不仅仅是类包:
?它确保了包
是一个新样式的类,它比旧样式的类有很多优点(并且是3.x中唯一可用的样式)。在Python 2和3中,如果没有(对象)
部分,它就可以很好地工作。所以我确实需要先定义一个类?是的。您甚至不能向对象的实例添加属性。(对象)
位的含义是什么?为什么不仅仅是类包:
?它确保了包
是一个新样式的类,它比旧样式的类有很多优点(并且是3.x中唯一可用的样式)。如果不使用Python 2和3中的(对象)
部分,它就可以很好地工作。不,您可以向对象类型添加允许它的属性None
和type
和int
不可更改,因为它们是不可变的。不可更改,您可以向对象类型添加允许该属性的属性None
和type
和int
不可更改,因为它们是不可变的。
from types import SimpleNamespace
spam = SimpleNamespace(eggs=[])
print(spam) # -> namespace(eggs=[])
spam.rice = {}
print(spam) # -> namespace(eggs=[], rice={})