я могу получить доступ к func_dict функций легко, если я пишу свое имя в нем:Как получить доступ к функции func_dict? Существует ли эквивалент «я» для функций?
def func(a):
print('{} {}'.format(func.prefix, a))
func.prefix = 'something'
func(4)
Есть ли способ, что я могу получить доступ к prefix
без необходимости писать func
снова, подобно self
метод класса?
Вы уверены, что 'func' не должен быть методом класса вместо этого? – chepner
Или, может быть, префикс должен быть аргументом со значением по умолчанию? – chepner
Честно говоря, лучшее решение (которое не требует обмана с бессмыслицей, например, добавление аргумента 'self' к функции) по умолчанию, чтобы сделать вызываемый класс в соответствии с [вторым ответом] (https://stackoverflow.com/a/3109542/364696) по [связанному вопросу] (https://stackoverflow.com/questions/3109289/how-can-python-function-access-its-own-attributes). Вы можете даже делать дополнительные трюки, например, назначать значения на уровне определения класса, а затем говорить «func = func()», который заменит определение класса одним экземпляром класса (который имеет «self», который может получить доступ переменные класса). – ShadowRanger