Лучше всего использовать словари.
teams = {
'Burnley': team("Burnley",[1, 0, 0, 1], True),
'Southampton': team("Southampton", [1,2,1,0,0,0,1], True),
'Swansea': team("Swansea",[1,2,1,1,1,2,1,1,0,0,0,0,0,0,3], True)
}
# and then simply fetch values from it
Burnley = teams['Burnley']
...
for idx, game in df.iterrows():
home_team_name = game["HomeTeam"] # Burnley let's assume
home_team = teams[home_team_name]
...
НО, если вы действительно хотите, о чем спрашивает вопрос, продолжайте читать.
Допустим, у меня есть файл, sample.py
# sample.py
from pprint import pprint
variable = 'some value'
x = 20
pprint(globals())
Вывод:
$ python3 sample.py
{'__annotations__': {},
'__builtins__': <module 'builtins' (built-in)>,
'__cached__': None,
'__doc__': None,
'__file__': 'sample.py',
'__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fccad01eb80>,
'__name__': '__main__',
'__package__': None,
'__spec__': None,
'pprint': <function pprint at 0x7fccacefdf70>,
'variable': 'some value',
'x': 20}
Как видите, все определенные переменные будут добавлены к globals()
, и это будет dict
, что означает, что вы можете получить из него значения.
Поэтому вы можете сделать что-то вроде этого
# sample.py
variable = 'some value'
x = 20
variable_name = 'variable'
number_name = 'x'
value_of_variable = globals().get(variable_name)
print(f'Value of variable = {value_of_variable}')
value_of_x = globals().get(number_name)
print(f'Value of x = {value_of_x}')
Вывод:
Value of variable = some value
Value of x = 20
Итак, для вашего случая
...
for idx, game in df.iterrows():
home_team_name = game["HomeTeam"] # Burnley let's assume
home_team = globals().get(home_team_name) # would give you the value of the variable `Burnley` if it exists
...
Если вы прочитали весь ответ до этого момента, в качестве предложения я хотел бы добавить, что имена классов должны начинаться с заглавной буквы. class Team:
вместо class team: