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("张三","老王")#结果:张三 老王 正在吃饭
  • 相关阅读:
    (转)MVC3+EF4.1学习系列(十一)EF4.1常见的问题解决
    (转)iReaper for wp7正式发布
    (转)Asp.net MVC 多语言问题的解决方案
    (转)SQL Server 2005 性能优化实战系列(文章索引)
    (转)结合领域驱动设计的SOA分布式软件架构
    (转)细说jquery ui和jqgrid的ASP.NET实现
    (转)简单代码生成器原理剖析
    (转)[翻译]ASP.NET MVC 3 开发的20个秘诀(十八)[20 Recipes for Programming MVC 3]:自动完成搜索
    sql优化: MySQL Explain详解
    mysql优化: show processlist 详解
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/11645051.html
Copyright © 2011-2022 走看看