Помогите упростить вызов метода

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

то есть обернуть функцию другой функцией, которая будет передовать параметр по умолчанию

→ Ссылка