Как бы один сделать что-то подобное в питонаПеременные с подтипов (Struct?) Python
Mainstring:
Sub1
Sub2
Sub3
затем Призываем каждого из этих значений, определяя Mainstring StringNumberOne
и
StringNumberOne.Sub1 = ""
Как бы один сделать что-то подобное в питонаПеременные с подтипов (Struct?) Python
Mainstring:
Sub1
Sub2
Sub3
затем Призываем каждого из этих значений, определяя Mainstring StringNumberOne
и
StringNumberOne.Sub1 = ""
Сначала нужно определить класс MainString
. В __init__
метода (конструктор), создавать переменные экземпляра (Sub1
и т.д.):
class MainString(object):
def __init__(self):
self.Sub1 = ""
self.Sub2 = ""
self.Sub3 = ""
Затем вы создаете экземпляр класса. Вы можете изменить значение переменных экземпляра для этого экземпляра:
StringNumberOne = MainString()
StringNumberOne.Sub1 = "hello"
Я не знаю, понимаю ли я ваш вопрос. Вы можете Habe класс как это:
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)
Существует также назван Кортеж подход:
from collections import namedtuple
Mainstring = namedtuple('Mainstring', 'sub1 sub2 sub3')
example = Mainstring("a", "b", "c")
print example.sub1 # "a"
выше код отсутствует '' def' в __str__' – bstpierre