python:方法参数的修饰符是可能的吗?

python:方法参数的修饰符是可能的吗?,python,methods,arguments,decorator,Python,Methods,Arguments,Decorator,可以修饰方法参数吗?比如: class SampleEntity (BaseEntity) : def someOperation (self, @Param(type="int", unit="MB")i, str) : pass 基本上,我希望开发人员能够指定关于类、属性、方法、参数等的元数据,我以后可以处理这些元数据。对于类和方法,我可以使用装饰器。所以我想知道如何为方法参数做这件事 谢谢, 很少。您可以修饰函数和类,但不能修饰参数。您不能将修饰器放在参数列表中,

可以修饰方法参数吗?比如:

class SampleEntity (BaseEntity) :
    def someOperation (self, @Param(type="int", unit="MB")i, str) :
        pass
基本上,我希望开发人员能够指定关于类、属性、方法、参数等的元数据,我以后可以处理这些元数据。对于类和方法,我可以使用装饰器。所以我想知道如何为方法参数做这件事

谢谢,
很少。您可以修饰函数和类,但不能修饰参数。

您不能将修饰器放在参数列表中,它必须围绕函数或类


您可能希望使用作为装饰器的起点。

如果是用于文档,则可以使用常用的

如果是为了更具体的信息,你以后可以在你的应用程序中使用,你也许可以使用


如果您想要静态类型,您应该使用不同的语言。

否,但在Python 3中您可以使用

注释可以保存您想要的任何信息,语言并不定义应该放在那里的内容。您可以使用
func.\uuuuu注释\uuuu
dict来访问它们。

您可以使用注释来记录这些文档。注释的实际含义取决于您和使用函数的代码

例如:

def dostuff(f: str, x: "Hula hula!"):
     pass

什么样的元数据?你不能用docstring吗?那怎么解决我的问题呢?我需要修饰方法本身来提供关于参数的元数据吗?@Litty:你的问题不是Python的问题。这是一个java或C++的问题。如果你切换语言,你就不必做那么多。有趣。我没有意识到这一点+谢谢!有趣的是,PEP--说该属性被称为
func\u annotations
,而不是
\uu annotations
。它过时了吗?政治公众人物是否过时?:)。我遇到了一个AttributeError,无法理解我做错了什么。@letitbee:我认为您应该默认先检查语言引用,然后再查看PEP,至少是已经实现的语言功能。注释存储在
\uuuuu Annotations\uuuuuuuu
中,甚至在3.0中也是如此,所以我猜他们决定在发布PEP和实现它之间的某个时候对其进行更改。事实上,我引用PEP-1,“PEP应该提供功能的简明技术规范”。虽然如果你是对的,我们不能信任政治公众人物,但我们也不能信任政治公众人物-1!;)
def dostuff(f: str, x: "Hula hula!"):
     pass