for param in Parameters:
#
Выше не будет работать, потому что Parameters
это класс, и это не итерацию.
class Parameters(Enum):
PARAM1 = (0, "some msg 1")
PARAM2 = (1, "some msg 2")
PARAM1
и PARAM2
являются класса переменных в вышеописанном случае.
Мы должны сделать что-то вроде этого:
class Enum(object):
def __init__(self, value):
self.value = value[0]
self.msg = value[1]
class Parameters(Enum):
def _init__(self, value):
super.__init__(value)
PARAM1 = (0, "some msg 1")
PARAM2 = (1, "some msg 2")
for param in [PARAM1, PARAM2]:
print Parameters(param)
[Edit 1]:
Создать количество объектов, для петли с функцией расстояния
код :
for i in range(100):
param = (i, "some mesg %s"%i)
print Parameters(param)
[Изменить 2]:
Получить значение от пользователя по raw_input
функциям и типа преобразования из строки в целое
Демонстрации:
>>> no = raw_input("Enter Number of objects you want to create(Give only number): ")
Enter Number of objects you want to create(Give only number): 33
>>> no
'33'
>>> type(no)
<type 'str'>
>>> no_int = int(no)
>>> type(no_int)
<type 'int'>
Примечания:
использование raw_input()
в Python 2.x
использования input()
в Python 3.x
[Edit 3]: значения методом жестко переменных экземпляра.
Определить класс в файле hardcoded_values.py
class Hardcodes():
def __init__(self,):
self.para1 = (1, "some msg 1")
self.para2 = (2, "some msg 2")
self.para3 = (3, "some msg 3")
self.para4 = (4, "some msg 4")
Импорт Hardcodes
класс test.py
файл
#- Create Object(instance)
from hardcoded_values import Hardcodes
obj = Hardcodes()
hardcode_values = obj.__dict__
for i in hardcode_values.iteritems():
print i
Выход:
$ python test.py
('para3', (3, 'some msg 3'))
('para2', (2, 'some msg 2'))
('para1', (1, 'some msg 1'))
('para4', (4, 'some msg 4'))
Спасибо! Есть ли способ сделать: 'для параметра в [PARAM1, PARAM2]' независимо от имен PARAM? – Konrad
означает, что я не получаю. 'PARAM1' и' PARAM2' являются переменными типов 'tuple'. Вы имеете в виду, что вам нужно генерировать больше переменных, например 'PARAM1'? –
Я имею в виду, что у меня может быть много ПАРА (f.g PARAM1 - ... - PARAM101), и я хотел бы иметь возможность выполнять итерацию на каждом PARAM, не зная его имени – Konrad