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("张三","老王")#结果:张三 老王 正在吃饭
  • 相关阅读:
    vue项目锚点定位+滚动定位
    elementUI 弹出框添加可自定义拖拽和拉伸功能,并处理边界问题
    密码检验规则(字母数字和特殊字符组成的混合体)
    分布式版本控制系统git
    自动生成滚动条
    jq中append(),appendTo(),after(),before(),prepend(),prependTo()的用法
    清除浮动的几种方式
    王者荣耀周年福利活动绕过微信屏蔽
    看不懂源码?先来恶补一波Object原型吧
    Vue组件化开发
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/11645051.html
Copyright © 2011-2022 走看看