具有子类型(Struct?)Python的变量
在python中如何执行类似的操作具有子类型(Struct?)Python的变量,python,types,Python,Types,在python中如何执行类似的操作 Mainstring: Sub1 Sub2 Sub3 然后通过定义主字符串StringNumberOne 及 我不确定我是否理解你的问题。您可以有这样一个类: class ManySubs(object): # explicit inheritance not needed in 3.x def __init__(self, *subs): self._subs = subs # add
Mainstring:
Sub1
Sub2
Sub3
然后通过定义主字符串StringNumberOne
及
我不确定我是否理解你的问题。您可以有这样一个类:
class ManySubs(object): # explicit inheritance not needed in 3.x
def __init__(self, *subs):
self._subs = subs
# add sub1..subN fields, but only because you asked for it
# I think a dynamic fields are an especially bad idea
# plus, about everytime you have x1..xN, you actually want an array/list
for i in range(len(subs)):
setattr(self, 'sub'+str(i+1), subs[i])
# wrapping code for sequencemethods (__len__, __getitem__, etc)
def __str__(self):
return ''.join(self._subs)
首先定义一个类
MainString
。在\uuuu init\uuuu
方法(构造函数)中,创建实例变量(Sub1
等):
然后创建该类的一个实例。您可以更改该实例的实例变量值:
StringNumberOne = MainString()
StringNumberOne.Sub1 = "hello"
还有命名元组方法:
from collections import namedtuple
Mainstring = namedtuple('Mainstring', 'sub1 sub2 sub3')
example = Mainstring("a", "b", "c")
print example.sub1 # "a"
StringNumberOne = MainString()
StringNumberOne.Sub1 = "hello"
from collections import namedtuple
Mainstring = namedtuple('Mainstring', 'sub1 sub2 sub3')
example = Mainstring("a", "b", "c")
print example.sub1 # "a"