码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象基础(四)

时间:2019-11-19 13:58:24      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:pwd   weight   else   静态   类方法   参与   构造函数   for   style   

# 封装中的属性
# 一个人是否健康可以通过bmi值来判断

class Person:
    def __init__(self,name,height,weight):
        self.name = name
        self.height = height
        self.weight = weight

    def bmi(self):
        return {name}的bmi值为{date}.format(name = self.name,date = round(self.weight / self.height ** 2,1))

p1 = Person(Tian,1.70,60)
print(p1.bmi())

# 这里bmi是一个名词一个属性的概念,这样调用是非常不符合规则的
class Person:
    def __init__(self,name,height,weight):
        self.name = name
        self.height = height
        self.weight = weight
    # 加上装饰器之后bmi方法就成为了属性方法
    @property
    def bmi(self):
        return {name}的bmi值为{date}.format(name = self.name,date = round(self.weight / self.height ** 2,1))

p1 = Person(Tian,1.70,60)
print(p1.bmi)
# 属性是可以更改的但是这里我们是一个伪装的属性所以无法更改,对此python中还有一些其他的装饰器
class Person:
    def __init__(self,name,height,weight):
        self.name = name
        self.height = height
        self.weight = weight
        self.__bmi = round(self.weight / self.height ** 2, 1)
    @property
    def bmi(self):
        return {name}的bmi值为{date}.format(name = self.name,date = self.__bmi)

    @bmi.setter
    def bmi(self,num):
        self.__bmi = num

    @bmi.deleter
    def bmi(self):
        del self.__bmi
p1 = Person(Tian,1.70,60)
p1.bmi = 10
print(p1.bmi)
del p1.bmi
# 这样就可以修改了,当然这种写法是不规范的没人会在构造函数做计算,这里只是以此举例
# 类方法
class A:
    count = 20

    @classmethod
    def cal(cls,num):
        return num + cls.count

# 这一类无需对象参与的的方法可以用类方法
print(A.cal(15))



# 父类要获取派生类也可以用类方法
class B(A):
    count = 30
print(B.cal(15))
# 类中的静态方法

class A:
    @staticmethod
    def func(user,pwd):
        if user == Tian and pwd == 666:
            print(success)
        else:
            print(error)


A.func(Tian,666)

# 增加代码的复用性
# 使代码块更加整洁明了

 

面向对象基础(四)

标签:pwd   weight   else   静态   类方法   参与   构造函数   for   style   

原文地址:https://www.cnblogs.com/tengx/p/11888431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!