【第23天】python全栈从入门到放弃
2019-08-17 本文已影响0人
36140820cbfd
利用@prorerty把方法伪装为一个属性
代码块
class Student:
def __init__(self,name,weight,height):
self.name=name
self.__weight=weight
self.__height=height
@property
def bmi(self):
return self.__weight / self.__height**2
name=(input('请输入您的姓名'))
weight=int(input('请输入您的体重')) #阻塞
height=int(input('请输入您的身高'))
s=Student(name,weight,height)
res=s.bmi
if res<18.5:
print('你有点偏瘦,要多吃肉')
elif res >=18.5 and res <=22.9:
print('您是正常标准的')
else:
print('你好胖')
2 通过实例化对象修改类中的属性
代码块
class Student:
def __init__(self,name,weight,height):
self.name=name
self.__weight=weight
self.__height=height
@property
def bmi(self):
return self.__weight / self.__height**2
s=Student('wangsiyu',55,1.68)
print(s.name) #wangsiyu
s.name='alex'
print(s.name) #walex
3 利用property 求圆的面积
代码块
from math import pi
class Circle:
def __init__(self,r):
self.r=r
@property
def area(self):
print('圆的面积是%d'%round(pi*self.r*self.r))
c=Circle(5.76)
c.area
4类方法
代码块
class Student:
def __init__(self,name,weight,height):
self.name=name
self.__weight=weight
self.__height=height
@classmethod
def test(cls):
print('我正在调用类方法,测试下实例化对象能不能调用这份方法')
s=Student('wangsiyu',55,1.68)
s.test()#我正在调用类方法,测试下实例化对象能不能调用这份方法
Student.test() #我正在调用类方法,测试下实例化对象能不能调用这份方法
# 看来可以调用
别跑,点个赞再走