Помогите упростить вызов метода
class Player:
def __init__(self, name):
self.name = name
self.state = 'Некоторая информация об игроке которая меняется в процессе игры'
def changeState(self):
'''изменить состояние state в зависимости от игровых обстоятельств'''
class Game:
def __init__(self):
self.player = Player('Ivan')
self.circumstances = 'Некоторые игровые обстоятельтсва'
Постарался максимально упростить пример. Вопрос такой. Мне приходится делать метод вот так: changeState(self, circumstances). Могут ли методы player получать доступ к информации circumstances без передачи circumstances в качестве параметра? А то вызов метода получается излишне сложным. Получается объекты player и circumstances находятся внутри одного объекта и не могут обращаться непосредственно ни к друг другу ни к своему родительскому объекту?
Ответы (1 шт):
Автор решения: ganz
→ Ссылка
Предлагаю воспользоваться следующим способом
import functools
f=functools.partial(print,'one','two')
f('alfa')
#one two alfa
f()
#one two
то есть обернуть функцию другой функцией, которая будет передовать параметр по умолчанию