zoukankan      html  css  js  c++  java
  • python第九期学习笔记(十二)(面向对象)

    https://www.cnblogs.com/jin-xin/articles/10311392.html

     

    对于每一个类的成员而言都有两种形式:

    • 公有成员,在任何地方都能访问
    • 私有成员,只有在类的内部才能方法

    私有成员和公有成员的访问限制不同:

    静态字段(静态属性)

    • 公有静态字段:类可以访问;类内部可以访问;派生类中可以访问,可以通过:类名.字段名访问
    • 私有静态字段:仅类内部可以访问;(只能在类的方法中访问,私有静态字段,通常以__来定义,私有方法也是以__来开头

     

    普通字段(对象属性)

     

    • 公有普通字段:对象可以访问;类内部可以访问;派生类中可以访问
    • 私有普通字段:仅类内部可以访问;

     

     案例:

    class C:
    def __init__(self):
    #私有字段以__开头
    self.__foo="私有字段"
    def func(self):
    print(self.__foo)
    class D(C):
    def show(self):
    print(self.__foo)
    obj=C()
    # print(obj.__foo)
    #在类的方法中定义
    obj.func()
    d=D()
    #在类的子类中方问私有字段,不可以
    d.show()

    
    

    方法:

    • 公有方法:对象可以访问;类内部可以访问;派生类中可以访问
    • 私有方法:仅类内部可以访问;
    class C:
    def __init__(self):
    pass
    def __add(self):
    print('in C')
    class D(C):
    def __show(self):
    print("in D")
    def func(self):
    self.__show()
    obj=D()
    #不能在类外访问
    # obj.__show()
    obj.func()
    # obj.__add()

    总结:

    对于这些私有成员来说,他们只能在类的内部使用,不能再类的外部以及派生类中使用.

    算体重:

    class People:
    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)
    p1=People('egon',47,1.55)
    print(p1.bmi)
    if p1.bmi<18.5:
    print("过轻")
    elif p1.bmi>=18.5 and p1.bmi<23.9:
    print("正常")
    elif p1.bmi>=24 and p1.bmi<27:
    print("过重")
    elif p1.bmi>=28 and p1.bmi<32:
    print("肥胖")
    else:
    print("非常肥胖")


  • 相关阅读:
    Excel 用row()函数 在Excel中自动添加序号,
    sql server数据导入
    Excel导入sq server后数据列以科学计数法显示
    left join 和 left outer join 的区别
    多点求值与暴力插值
    生成函数

    洲阁筛 学习笔记
    「NOI2017」游戏 解题报告
    CF 1045 H. Self-exploration 解题报告
  • 原文地址:https://www.cnblogs.com/gaoyuxia/p/11736653.html
Copyright © 2011-2022 走看看