静态属性.类方法.静态方法 1. 静态属性:在函数前加@property,将函数逻辑”封装“成数据属性,外部直接调用函数名,如同调用属性一样.这个函数是可以调用类和实例的属性的,    静态属性的作用是把类的方法隐藏起来(可以把背后的逻辑隐藏起来),让用户感觉是在调用属性,而不是方法: class Room: res = "alex" def __init__(self,name,owner,width,length,heigh): self.name = name self.owne…
一. 静态属性.类方法.静态方法 1.1静态属性 class Room: def __init__(self,name,owner,width,length): self.name=name self.owner=owner self.width=width self.length=length @property def cal_area(self): return self.width * self.length r1=Room('厕所','alex',1000,100) print(r1.…
静态属性:即将类的函数通过@property属性封装,封装后实例调用该函数时,不再需要在函数后面加(),而是用类似调用数据属性的方式直接调用函数名称即可执行函数. 静态属性既可以访问类的属性,也可以访问实例的属性. 类方法:即在类的函数前加@classmethod属性,函数第一个参数为cls类,表示该函数是类的方法,而不需要绑定具体实例. 在类方法里面可以调用类的属性,并且在类调用该函数时,会将自身作为第一个参数传入,类方法不能访问实例.实例可以调用类方法. 静态方法,即在类的函数前加@stat…
静态属性 在类中函数前加@property,在实例调用函数时无需加(),将函数属性封装,调用时看起来与数据属性类似 将函数封装成数据属性的形式,外部调用时看不到逻辑,静态属性可以访问实例属性也可以访问类属性 class House: def __init__(self,name,owner,width,length,height): self.name=name self.owner=owner self.width=width self.length=length self.height=he…
一.property property是一个装饰器函数 装饰器函数的使用方法:在函数.方法.类的上面一行直接@装饰器的名字 装饰器的分类: 1.装饰函数 2.装饰方法:property 3.装饰类 import math class Circle: def __init__(self,radius): #圆的半径radius self.radius=radius @property def area(self): return math.pi * self.radius**2 #计算面积 @pr…
目录 python类方法@classmethod与@staticmethod 一.@classmethod 介绍 语法 举例 二.@staticmethod 介绍 语法 举例 python类方法@classmethod与@staticmethod 一.@classmethod 介绍 与普通的类方法有所不同的是,用@classmethod修饰的类方法不传入self实例本身,而是传入cls,代表这个类自身,可以来调用类的属性,类的方法,实例化对象等. 语法 使用的语法也非常简单,直接在类方法上加上装…
封装:将类的属性隐藏 #先看如何隐藏 1,在定义的属性之前加入__. class Foo: __N=111111 #_Foo__N def __init__(self,name): self.__Name=name #self._Foo__Name=name def __f1(self): #_Foo__f1 print('f1') def f2(self): self.__f1() #self._Foo__f1() #在类内部调用的话可以 f=Foo('egon') #这种隐藏需要注意的问题:…
静态属性property(是通过对象去使用) property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 1 . 通过@property修饰过的函数属性,调用的时候无需在加() class Foo: @property def f1(self): print("f1") f = Foo() f.f1 输出: f1 1.BMI指数案例 成人的BMI数值: 过轻:低于18.5 正常:18.5-23.9 过重:24-27 肥胖:28-32 非常肥胖, 高于32 体质指数(BM…
一.本质 静态属性property本质就是实现了get,set,delete三种方法 class Foo: @property def AAA(self): print('get的时候运行我啊') @AAA.setter def AAA(self, value): print('set的时候运行我啊') @AAA.deleter def AAA(self): print('delete的时候运行我啊') # 或者不加描述符直接这样写 ---> AAA=property(get_AAA,set_A…
计算所居住房子的面积 普通写法 class Room: def __init__(self,name,owner,width,length,heigh): self.name=name self.owner=owner self.width=width self.lenth=length self.heigh=heigh def cal_area(self): print('%s 住的 %s 总面积为 %s' %(self.owner,self.name,self.heigh*self.widt…