理解python中的属性装饰器
我有一个定义如下的类:理解python中的属性装饰器,python,Python,我有一个定义如下的类: class ClientAPi def __init__(self, host): self.host = host def foo(self, foo): return self._foo(foo) @property def _foo(self): return bind_api( api=self, path='/foo', all
class ClientAPi
def __init__(self, host):
self.host = host
def foo(self, foo):
return self._foo(foo)
@property
def _foo(self):
return bind_api(
api=self,
path='/foo',
allowed_param=['foo'])
bind_api在哪里
事实上这是tweepy library中的模式
这是怎么回事?我无法理解流程。。
我的意思是变量foo是如何从foo()传输到_foo()
还有,现在。。我的api的某些路径已更改。。
现在它不是host:port/foo
,而是host:port/v1/foo
有没有一种方法可以用一些修饰符来注释这些方法..这样有这个修饰符的方法就有了它的path='/foo'
topath=/v1/foo
比如说
class ClientAPi
def __init__(self, host):
self.host = host
def foo(self, foo):
return self._foo(foo)
@new_api('v1')
@property
def _foo(self):
return bind_api(
api=self,
path='/foo',
allowed_param=['foo'])
将路径从
'/foo'
更改为'/v1/foo'
我认为您的新的\u api
装饰器无法工作,因为它需要以某种方式更改函数代码中设置的常量。@metatoaster:有人能向我解释一下,当我自己调用函数foo时。\u foo(foo)。。但是\u foo(self)函数不接受任何参数。。如何捕获从主函数传递到属性函数的参数?请查看,返回对象是\u call
,这是一个可以调用的函数。我认为您的新api
装饰器可能无法正常工作,因为它需要以某种方式改变函数代码中设置的常量。@metatoaster:有人能向我解释一下,当我在函数foo中调用self.\u foo(foo)时。。但是\u foo(self)函数不接受任何参数。。如何捕获从主函数传递到属性函数的参数?请查看,返回对象是\u call
,这是一个可以调用的函数。