码迷,mamicode.com
首页 > 其他好文 > 详细

静态属性、类方法、静态方法

时间:2019-05-24 11:10:42      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:关系   close   div   mamicode   stat   类方法   自动   alt   类的属性   

静态属性

  静态属性就是数据属性,在函数属性上加装饰器@property,感官会认为是把函数属性转化成数据属性,运用类函数方法不需要加()

  封装:把背后的操作逻辑隐藏起来,跟实例绑定

技术图片
class Hhj:
    def __init__(self,name,age,face):
        self.name=name
        self.age=age
        self.face=face
    @property
    def test(self):
        print(我是%s 年纪是%s 长得%s %(self.name,self.age,self.face))
r1=Hhj("林南",29,"")
r1.test
静态属性示例

 

类方法

  不通过任何实例,只执行类的方法,不跟任何实例捆绑,只跟类捆绑,就是类方法。用@classmethod装饰器,实例与类的区分。

  类名加类方法自动传递第一个参数,跟实例没有任何关系,只是类级别操作,类调用自己的方法。实例也能调用,调用的是自己所属的类,但不能访问实例属性。

  函数属性就是方法功能

技术图片
class Hhj:
    def __init__(self,name,age,face):
        self.name=name
        self.age=age
        self.face=face
    name=[林南,29,]
    @classmethod
    def test(cls):
        print(我是%s 年纪是%s 长得%s %(cls.name[0],cls.name[1],cls.name[2]))
r1=Hhj("林南",29,"")
Hhj.test()
r1.test()
类方法示例

 

静态方法

  @staticmethod,类的工具包,不跟类绑定也不跟实例绑定

  直接定义 def test(x,y)

       print(x,y)  实例无法调用

   @staticmethod 静态方法只是名义上的归属类管理,不能使用类变量和实例变量,是类的工具包

技术图片
class Chinese:
    dang=""
    def sui_di_tu_tan(self):
        print("朝墙上吐了一口痰")
    def __init__(self,name,age,gentle):
        self.a=name
        self.b=age
        self.c=gentle
    def chadui(self):
        print(插队到前面)
    @staticmethod
    def test(x,y):
        print(x,y)
# r1=Chinese("林南","29","男")
# r1.sui_di_tu_tan()
# r1.test(1,2)
Chinese.test(2,9)
静态方法示例

小结

静态属性:把函数封装成一个数据属性的形式,外部调用看不见内部的逻辑,感受不到内部逻辑,静态属性既可以访问实例属性,又可以访问类属性,可以传递参数self

类方法:可以访问类的属性,不能访问实例的属性

静态方法:不能访问类属性,也不能访问实例属性

技术图片技术图片技术图片

 

静态属性、类方法、静态方法

标签:关系   close   div   mamicode   stat   类方法   自动   alt   类的属性   

原文地址:https://www.cnblogs.com/jintian/p/10916365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!