Python 如何访问函数';什么是职能?函数是否有对应的self?

Python 如何访问函数';什么是职能?函数是否有对应的self?,python,function,class-method,Python,Function,Class Method,如果将函数的名称写在函数中,我可以轻松访问函数的函数: def func(a): print('{} {}'.format(func.prefix, a)) func.prefix = 'something' func(4) 有没有什么方法可以访问前缀,而无需再次编写func,类似于类方法中的self def func(a): print('{} {}'.format(func.prefix,a)) 如果您自己调用它而不设置前缀,您将得到一个属性错误,因为前缀尚未定义 通过

如果将函数的名称写在函数中,我可以轻松访问函数的函数:

def func(a):
    print('{} {}'.format(func.prefix, a))

func.prefix = 'something'
func(4)
有没有什么方法可以访问
前缀
,而无需再次编写
func
,类似于类方法中的
self

def func(a):
    print('{} {}'.format(func.prefix,a))
如果您自己调用它而不设置
前缀
,您将得到一个
属性错误
,因为前缀尚未定义

通过定义
func.prefix='something'
,现在当您调用
func(4)
时,您将得到
something 4
作为输出。您可以继续重新定义
func.prefix
,它将更新
func
中的
属性


除非你的问题有更多的内容,否则你已经做对了。

如果没有更多的补充,回答就没有意义了。我认为这里更大的问题是如何在不使用函数名的情况下访问名称空间,这样,如果重命名
func()
,所有内部引用都将工作,而不必更改。Jkdc是正确的,这就是我的观点。你确定
func
不应该是一个类的方法吗?或者
prefix
应该是一个带有默认值的参数吗?坦白地说,最好的解决方案(不包括像在函数中添加默认的
self
参数这样的欺骗)是根据。您甚至可以执行其他技巧,例如在类定义层指定值,然后说
func=func()
,这将用类的单个实例(具有可以访问类变量的
self
)替换类定义。