• python编程基础之三十四


    面向对象:三大特征:封装,继承,多态

    封装:隐藏对象的实现过程,对外仅仅公开接口,控制在程序中的读取和修改的访问级别

    类,函数都是一种封装

    属性私有化:当类里面的属性不想被外部访问,可以将这些属性设置为私有属性,只需要家两个下划线'__', 例如:__age,这就是个私有属性,加一个下划线的成为保护属性,

    可以直接访问,但是因为是保护属性所以大家对这类属性,不会特意去访问,一般不会访问,都是约定俗成的,没有具体规定要求

    1 class Dog:
    2     def __init__(self,name,gender,age):
    3         self.name = name
    4         self._gender = gender  #'保护'变量
    5         self.__age = age    #私有变量
    6       
    View Code

    当外部希望访问内部的私有的时候,可以在内部添加一个公有方法对外来访问某个私有属性

    也可以用属性装饰器

     1 class Dog:
     2     def __init__(self,name,gender,age):
     3         self.name = name
     4         self._gender = gender
     5         self.__age = age
     6     @property
     7     def age(self):
     8         return self.__age
     9     @age.setter
    10     def age(self,age):
    11         self.__age =age
    12 
    13 ding = Dog('丁丁','',5)
    14 print(ding.name)
    15 print(ding.age)
    16 ding.age =10
    17 print(ding.age)
    18 print(ding._gender)
    View Code

    成员函数私有化:也就是把方法设置为私有的,也都是两个下划线开头就行面向对象语言一个主要的功能就是”继承“,所谓继承就是使现有的类无需编码便可以拥有原有类的方法和属性。被继承的类可以称之为父类、基类、超类。继承的类可以称之为子类、派生类

    继承的优点:

    • 可以简化代码,减少冗余度

    • 提高了代码的可维护性

    • 提高了代码的安全性

    • 是多态的前提

    单继承:一个子类只有一个父类子类会继承父类的所有属性和方法

    私有属性在子类中不能直接使用,

    1 #语法:
    2 class 子类名(父类名):
    3     pass
    View Code

    object是Python中所有类的父类【一般情况下,如果一个类没有指明的父类,默认它的父类为object】

    构造方法的继承

     1 class Animal:
     2     def __init__(self,name,age):
     3         self.name = name
     4         self.__age =age
     5     ....
     6 
     7 class Dog(Animal):
     8     def __init__(self,name,age,gender):
     9         #调用父类构造方法的好处,简化了子类构造方法代码,实现了代码复用
    10         #1. super(当前类名,self).__init__(实参列表) #实参不要带self
    11         # super(Dog,self).__init__(name,age)
    12         # 2. super().__init__(实参列表)#实参不要带self
    13         # super().__init__(name, age)
    14 
    15         #3. 父类名.__init__(self,其它参数)
    16         Animal.__init__(self,name,age)
    17         self.gender = gender
    View Code

    方法的改写:说白了就是重新写一遍新的

    多继承:一个子类多个父类

    1 class 子类类名(父类1,父类2....):
    2     子类类体
    View Code
  • 相关阅读:
    父级div height:auto无效解决办法
    梦幻西游摇钱树苗怎么种
    检测QQ是否在线或启用
    ASP.NET MVC3 Model验证总结 @Html.ValidationSummary(true)
    cookie与session用法
    《梦幻西游》手游人宠抗防修炼点修消耗表
    Windows 8/8.1 Key_Windows 8.1|Windows 8|Windows 7|Windows Vista|Office 2013|Office 2010|Win Server 2012|Win Server 2008|Vista|各版
    My97DatePicker控件显示时分秒
    jQuery日期选择插件WdatePicker使用方法.日期范围限制
    DropDownList赋值,绑定,传值
  • 原文地址:https://www.cnblogs.com/higer666/p/9455836.html
Copyright © 2020-2023  润新知