【第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()   #我正在调用类方法,测试下实例化对象能不能调用这份方法
# 看来可以调用

别跑,点个赞再走
上一篇下一篇

猜你喜欢

热点阅读