0

我对我一直在看的一些代码提出了一些问题。当它写在 Python 中的方法定义之上时,@staticmethodand是什么意思,如下所示?@property

@staticmethod 
def methodName(parameter):
    Class_Name.CONSTANT_VARIABLE = parameter

@property
def methodName(parameter):
    Class_Name.CONSTANT_VARIABLE = parameter
4

3 回答 3

2

装饰器语法是这种模式的简写。

def methodName(parameter):
    Class_Name.CONSTANT_VARIABLE = parameter
methodName = some_decorator(methodName)

可以这样重新排列

@some_decorator
def methodName(parameter):
    Class_Name.CONSTANT_VARIABLE = parameter

一个优点是它位于函数的顶部,因此很明显它是一个装饰函数

您是否还问静态方法和属性是什么?

于 2012-07-02T05:03:08.047 回答
1

有一个示例代码

class Class1(object):
    def __init__(self):
        self.__x = None

#       you can call this method without instance of a class like Class1.method1()
    @staticmethod
    def method1():
        return "Static method"

    def method2(self):
        return "Class method"

    @property
    def x(self):
        print "In getter"
        return self.__x

    @x.setter
    def x(self, value):
        print "In Setter"
        self.__x = value
于 2012-07-02T06:57:37.770 回答
0

静态方法只是一个包含在类定义中的函数与常规方法不同,它没有self参数。

属性是一种在属性查找时运行的方法。属性的主要目的是支持属性查找,但实际上运行代码就像进行了方法调用一样。

于 2012-07-02T06:14:44.467 回答