当您说组合列表时,我并不完全理解您的意思,但实际上您可以在 Python 中拥有一个结构。
理想情况下,你的意思是你想要一个不可变的 C-Struct 类对象,那么你可以很容易地创建它。在 Python 中,它被称为 a namedtuple
,或者至少这是我遇到的最接近的。您当然可以在 Python 中创建自己的通用对象,并添加参数,但这将是一个动态结构。
理想情况下,在 C 中,您将拥有这样的结构 ->
struct tag_name
{
type attribute;
type attribute2;
/* ... */
};
struct
并且您可以访问like的属性tag_name.attribute
。所以,这就是 a 的namedtuple
工作原理:
>>> from collections import namedtuple
>>> NetworkAddress = namedtuple('NetworkAddress',['hostname','port'])
>>> a = NetworkAddress('www.python.org',80)
>>> a.hostname
'www.python.org'
>>> a.port
80
>>> host, port = a
>>> len(a)
2
>>> type(a)
<class '_ _main_ _.NetworkAddress'>
>>> isinstance(a, tuple)
True
>>>
如果您有什么特别想要的,请更新您的问题以解释组合列表,以便我可以更新此答案。
然而,这是像 C 这样的静态类型语言的典型特征,因为我们使用的是 Python,我们可以使用一些很酷的动态属性,因此您基本上可以创建一个对象,您可以根据需要添加属性:
class DynamicObject(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
控制台会话
>>> class DynamicObject(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
>>> happy_obj = DynamicObject(name="Happy Gilmore")
>>> happy_obj.name
'Happy Gilmore'
学分->
https://stackoverflow.com/users/320726/6502获取动态对象代码。谢啦 :)