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


    class Room:
        tag=1
        def __init__(self,name,owner,width,length,heigh):
            self.name=name
            self.width=width
            self.owner=owner
            self.length=length
            self.heigh=heigh

     

    1、静态属性

    既可以访问类自己的属性也可以访问实例自己的属性

        @property
        def cal_area(self):
            # print('%s 住的 %s 总面积是 %s'%(self.owner,self.name,self.width*self.length))
            return self.width*self.length
    r1=Room('厕所','alex',100,100,10000)
    #像类一样访问自己的属性,所调用的函数不用加()
    print(r1.cal_area)

    2、类方法

    访问不到实例的属性,主要是给类用的

        @classmethod#(给类用的)
        def tell_info(cls,x):#cls参数接收的是类名,类名自动传入第一个参数
            print(cls)
            print('---->',cls.tag,x)#print('---->',Room.tag)
        # def tell_info(self):
        #     print('----->',self.tag)
    Room.tell_info(10)

    3、静态方法

    不能访问类属性和实例属性,只是类的工具包

        @staticmethod
        def wash_body(a,b,c):
            print('%s %s %s正在洗澡'%(a,b,c))
    
    Room.wash_body('alex','yuanhao','wupeiqi')
    
    r1=Room('公共厕所','yuanhao',1,1,10000)#实例(对象)只有数据属性没有函数属性(用于调类的函数属性)
    r1.wash_body('alex','yuanhao','wupeiqi')
  • 相关阅读:
    VUE-路由配置及跳转方式
    VUE使用axios请求后端数据
    springboot图片/文件上传
    java中return;语句的作用
    使用maven搭建ssm框架环境
    Java和Tomcat安装教程
    安装tomcat出现的问题
    关于 == 和 equals() 的区别
    关于从request对象中获取路径的问题
    栈和队列_leetcode20
  • 原文地址:https://www.cnblogs.com/happyfei/p/9581268.html
Copyright © 2020-2023  润新知