理解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'
to
path=/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
,这是一个可以调用的函数。