基本的Python方法定义

时间:2012-07-02 04:54:48

标签: python

我对我一直在关注的一些代码提出了一些问题。 @staticmethod@property在Python上面的方法定义上面写的是什么意思?

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

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

3 个答案:

答案 0 :(得分:2)

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

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

可以像这样重新排列

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

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

您是否也在询问静态方法和属性是什么?

答案 1 :(得分: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

答案 2 :(得分:0)

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

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