Константы, локальные для функций-членов - PullRequest
0 голосов
/ 30 ноября 2018

Я ищу хорошее решение для того, чтобы поместить (семантические) константы в класс, которые имеют отношение только к некоторой определенной функции-члену.Я не хочу инициализировать эти константы каждый раз, когда я вызываю функцию-член, но я также не хочу забивать ими класс:

class C:
    def __init__(self):
        # possible class related constants here
        self.func_constant = some_value # meh, does not belong here

    def func(self):
        func_constant = some_value # ... no, that is inefficient

Если это было в контексте свободных функций,Я бы использовал замыкание:

def make_func():
    constant = some_value
    def func():
        #code
    return func

func = make_func()

Я не знаю способа объявить функции-члены как возвращаемое значение замыкания.Я имею в виду, что я мог бы сделать это:

class C:
    def __init__(self):
        # possible class related constants here
        self.func = make_func()

Но это плохой дизайн по совершенно разным причинам и может даже не сработать, если func требуется доступ к другим членам C.

Поэтому мой вопрос: есть ли способ иметь локальные константы функций-членов, которые инициализируются только один раз, а не каждый вызов функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...