python@staticmethod&@classmethod&property的理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python@staticmethod&@classmethod&property的理解相关的知识,希望对你有一定的参考价值。

 

 

#!/usr/bin/evn python
#_*_coding:utf8_*_


class myClass(object):
    age = 30
    def __init__(self,name):
        self.name = name
    def sayhi1(self):#只可实例中调用
        print("sayhi1...name:{}.age:{}".format(self.name,self.age))
    @staticmethod  #静态方法不可访问构造方法中的变量,可在实例中调用,也可类中调用
    def sayhi2(age=10):#不可以传self,即不可访问self.name,self.age
        print("[email protected]{},{}".format(myClass.age,age))
    @classmethod #类方法不可以访问__init__构造方法中的变量,可在实例中调用,也可以类中调用
    def sayhi3(self,test=实例中调用):#可传self,只能访问类变量,不可访问构造方法中的变量
        print("[email protected]:{},{}".format(self.age,test))
    @property #属性方法:必须要返回值,只可当属性使用,不可调用。把一个方法变成静态属性给予访问,实例中可访问
    def sayhi4(self,name=实例中..):#可访问类变量及构造方法中的变量
        print("[email protected]:{},age{},{}".format(self.name,self.age,name))
        return self.name,self.age
    @property
    def sayhi5(self):
        print("[email protected]{}".format(self.age))
        return self.age




if __name__ == __main__:
    m = myClass(dodo)
    m.sayhi1()
    #myClass.sayhi1()
    print("[email protected]调用-------")
    m.sayhi2(实例中调用...)
    m.sayhi2()
    myClass.sayhi2(类中外部调用...)
    myClass.sayhi2()
    print("[email protected]调用--------")
    m.sayhi3()
    myClass.sayhi3(类中调用)
    print("[email protected]调用-----------")
    print(m.sayhi4)
    print(myClass.sayhi4)
    print(myClass.sayhi5)
    print(m.sayhi5)

 

以上是关于python@staticmethod&@classmethod&property的理解的主要内容,如果未能解决你的问题,请参考以下文章

python--staticmethod(静态方法)和classmethod(类方法)

Python staticmethod() 函数

python @staticmethod 注解,静态方法,可以省略类里那个self参数

python @staticmethod和@classmethod的作用与区别

python staticmethod,classmethod方法的使用和区别以及property装饰器的作用

成人网站PornHub跨站脚本(XSS)漏洞挖掘记