我对我一直在关注的一些代码提出了一些问题。 @staticmethod
和@property
在Python上面的方法定义上面写的是什么意思?
@staticmethod
def methodName(parameter):
Class_Name.CONSTANT_VARIABLE = parameter
@property
def methodName(parameter):
Class_Name.CONSTANT_VARIABLE = parameter
答案 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 参数。
属性是一种在属性查找时运行的方法。属性的主要目的是支持属性查找,但实际上运行代码就好像已经进行了方法调用一样。