zoukankan      html  css  js  c++  java
  • 第49天python学习静态属性 静态方法

    #静态属性:就是数据属性
    #定义个房间类
    # class Room:
    # def __init__(self,name,owner,width,length,heigh):
    # self.name=name
    # self.owner=owner
    # self.length=length
    # self.width=width
    # self.heigh=heigh
    #
    # r1=Room("房号1120","zhangshang",10,20,3)
    # print("%s住的%s房子面积是%s:"%(r1.owner,r1.name,r1.width*r1.length))
    # r2=Room("房号1130","老王",10,20,3)
    # print("%s住的%s房子面积是%s:"%(r2.owner,r2.name,r2.width*r2.length))


    #@property 定义个属性,不让调用看到使用的逻辑
    # class Room:
    # def __init__(self,name,owner,width,length,heigh):
    # self.name=name
    # self.owner=owner
    # self.length=length
    # self.width=width
    # self.heigh=heigh
    # @property#定义个属性,不让调用看到使用的逻辑
    # def mianjie(self):
    # return self. width*self.length
    #
    # r1=Room("房号1120","zhangshang",10,20,3)
    # r2=Room("房号1130","老王",10,20,3)
    # print(r1.mianjie)#因为使用了property所有看上去像调用类属性,结果:200
    # print(r2.mianjie)#因为使用了property所有看上去像调用类属性,结果:200
    # print(r1.name)#调用类的属性,结果;房号1120
    # print(r2.name)#调用类的属性,结果;房号1130


    #类来调用自己的方法时使用 @classmethod——————针对恩赐
    # class Room:
    # tag=1
    # def __init__(self,name,owner,width,length,heigh):
    # self.name=name
    # self.owner=owner
    # self.length=length
    # self.width=width
    # self.heigh=heigh
    #
    # @classmethod#使用classmethod能调用自己的类
    # def tell(cls):
    # print(cls)
    # print("———》",cls.tag)
    #
    # Room.tell()#调用自己的类,结果:———》 1


    # 静态方法
    #@staticmethod 当在类下应用staticmethod时候,在下面定义一个函数时,不会出现self 和 cls,静态方法只是名义上的归属管理,不能使用类变量和实例变量,石磊的工具包
    class Room:
    tag=1
    def __init__(self,name,owner,width,length,heigh):
    self.name=name
    self.owner=owner
    self.length=length
    self.width=width
    self.heigh=heigh

    @property
    def mianjie(self):
    return self. width*self.length

    @classmethod
    def tell(cls):
    print(cls)
    print("———》",cls.tag)

    @staticmethod#当在类下应用staticmethod时候,在下面定义一个函数时,不会出现self 和 cls,静态方法只是名义上的归属管理,不能使用类变量和实例变量,石磊的工具包
    def test(a,b):
    print("%s %s 正在吃饭"%(a,b))

    Room.test("张三","老王")#结果:张三 老王 正在吃饭
  • 相关阅读:
    Swift入坑系列—集合类型
    Java正则表达式入门
    Swift基础--手势识别(双击、捏、旋转、拖动、划动、长按)
    Swift之手势总结
    Matlab图像彩色转灰色
    HDU1754_I Hate It(线段树/单点更新)
    Cocos2d-x-lua游戏两个场景互相切换MainScene01切换到MainScene02
    freemarker自己定义标签(二)
    hibernate 在tomcat7.X 下配置mysql数据源
    WinCE隐藏显示任务栏,当任务栏隐藏时将其显示,当任务栏显示时将其隐藏(FindWindow,ShowWindow,IsWindowVisible),
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/11645051.html
Copyright © 2011-2022 走看看