zoukankan      html  css  js  c++  java
  • 类的静态属性

    #静态属性

    #类既有函数属性又有数据属性,实例只有数据属性。我们在使用实例调用类的函数
    #属性并运行时,总要带上函数后面的括号才能运行,不然总是调用函数的内存地址。
    #类中提供了@property关键字,当加上这个关键字之后,就可以像调用类的属性一
    #样来直接调用并运行类的函数

    #实例(没有@property
    class StaticP_1:
    sp_1 = '静态方法' #类属性
    def __init__(self,name,addr):
    self.name = name #实例属性
    self.addr = addr #实例属性
    def show_1(self):
    print('%s静止在%s'%(self.name,self.addr))
    s = StaticP_1('','书架')
    print(s.sp_1) #调用类属性
    print(s.show_1) #返回的是函数的内存地址
    s.show_1() #要加括号才能调用并运行函数
    print('----------------end------------')

    #实例(加了@property之后)
    class StaticP_2:
    sp_2 = '静态方法'
    def __init__(self,name,addr):
    self.name = name
    self.addr = addr
    @property #注意点
    def show_2(self):
    print('%s静止在%s'%(self.name,self.addr))
    return
    s = StaticP_2('','书架')
    print(s.show_2) #直接调用类函数,不用加括号
    print('----------------end------------')

    #类方法
    #@classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需
    #要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

    class StaticP_3:
    sp_3 = '静态方法'
    def __init__(self,name,addr):
    self.name = name
    self.addr = addr
    @property #注意点
    def show_3(self):
    print('%s静止在%s'%(self.name,self.addr))
    return
    @classmethod
    def func(cls): #cls就相当于类
    print('cls--->',cls) #<class '__main__.StaticP_3'>
    print('类的数据属性-->',cls.sp_3) #返回静态方法

    s = StaticP_3('','书架')
    print(s.show_3) #直接调用类函数,不用加括号
    s.func()
    StaticP_3.func() #不需要实例化就可以调用
    #StaticP_3.show_3() #报错
    print('----------------end------------')

    # staticmethod 返回函数的静态方法:从而可以实现实例化使用,也可以不实例化调用该方法

    #静态方法

    class StaticP_4:
    sp_4 = '静态方法'
    def __init__(self,name,addr):
    self.name = name
    self.addr = addr
    @property #注意点
    def show_4(self):
    print('%s静止在%s'%(self.name,self.addr))
    return
    @classmethod
    def func(cls): #cls就相当于类,#用类调用类参数
    print('cls--->',cls) #<class '__main__.StaticP_3'>
    print('类的数据属性-->',cls.sp_4) #返回静态方法

    @staticmethod
    def fun(price):
    print('书的价格为%s'%price)

    s = StaticP_4('','书架')
    print(s.show_4) #直接调用类函数,不用加括号
    s.func()
    StaticP_4.func() #不需要实例化就可以调用
    #StaticP_4.show_4() #报错
    s.fun('10') #实例调用
    StaticP_4.fun("10") #类也可以调用
    print('----------------end------------')
  • 相关阅读:
    用户调查报告
    beta-2阶段组员贡献分分配
    beta阶段140字评论
    11月9号站立会议
    BETA预发布演示视频
    第八周PSP&进度条
    11月8号站立会议
    栈——C语言模拟
    读《弗洛伊德:作家与白日梦》
    《爱的艺术》爱的误解——对象,状态
  • 原文地址:https://www.cnblogs.com/shadowfolk/p/14659883.html
Copyright © 2011-2022 走看看