@property @classmethod @staticmethod

@property

class test:

    @property
def tt(self):
print('hehehe')

def jj(self):
print('gggg')
obj=test()
obj.tt
print(obj.jj)

实例化以后拿到对象obj
如果添加@property ,obj.tt可以直接拿到这个函数执行结果 heheh
然而不添加@property obj.jj的执行结果,要拿到结果需要添加括号来获取 obj.jj() 才可以拿到 gggg

所以为了代码的简洁方便,通过添加@property,只需要直接 obj.tt不需要加括号就可以获取函数执行结果


=============================================

staticmethod
@
@staticmethod
class test1:
def tt():
    print("哈哈哈")

test1.tt() 如果不加装饰器会报错,说给了一个参数,因为默认会把self这个参数对应对象本身,如果你只是想简单把里面当一个函数使用,就加装饰器saticmethod
test1.tt() 加这个装饰器这样就不会报错了,结果为
posted @ 2019-11-13 14:20  len1028  阅读(113)  评论(0编辑  收藏  举报