zoukankan      html  css  js  c++  java
  • Python面向对象

    • 类和对象
        类的定义这里不多赘述,直接看数据属性
        数据属性分为实例属性和类属性:
            实例属性:是在构造函数__init__定义时候以self作为前缀,实力属性属于实例所有,只能通过对象名去访问
            类数据属性:在类内定义的,类属性属于类,大家都可以去访问(除私有成员除外)
        总结:
         一,类数据属性属于类本身,可以通过类名进行访问/修改
        二,类数据属性也可以被类的所有实例访问
        三,在类定义之后,可以通过类名动态添加类数据属性,新增的类属性也被类和所有实例共有
        四,实例数据属性只能通过实例访问
        五,在实例生成之后,可以动态添加实例数据属性,但是这里,这些实例数据属性只被该实例所有
     成员方法:
        三种:
        1.    实例方法, 第一个参数必须是self,就是上面的图片中显示的代码,就用了实例方法
        2.    类方法,定义的时候用@classmethod修饰,通过cls可以访问相关属性  用法是用类名可以点出函数
        3.    静态方法:用@staticmethod修饰,用法和上面一样,这里用类名点处理属性方法
     
        访问控制:
        我们用单下划线'_'来实现模块级别私有化,但是单下划线的变量是可以访问,(我们约定俗成不能访问),不过在from moduleName import *中是不能访问加单下划线的变量
        在类中的的私有化:我们用双下滑线来实现私有化,在类外是无法访问,
        pis:可以通过命名重整的方法来实现访问!    _Student__address 重整类名来访问
    构造与析构:
        构造函数属于对象,每个对象都有自己的构造函数
        析构同理,我们不用去主动调用,他会自动调用,并且python由垃圾回收机制
     
        继承:
        首先我们可以用内建函数来判断一个类是不是另一个类的子类
        issubclass(sub,sup)
        前面我们也说过用isinstance(obj,class)来判断obj是不是一个类的实例对象
        
        继承中的一些注意点
        1.    在继承中基类的构造不会被自动调用,他需要在子类中亲自调用
        2.    在调用基类方法的时候,需要加上基类的类名前缀,且加上self参数变量
        3.    Python找类型方法时候有先从本类中先查找,查找不到在在父类中查找

    我们可以在子类中写出和父类函数名字一样的函数(即重写)

  • 相关阅读:
    最大的错误就是没有把自己的软件开发事业当 作一桩生意来看待
    python:open/文件操作
    Python 之ConfigParser
    Python 之ConfigParser
    Python 之ConfigParser
    python的time模块使用
    python的time模块使用
    python的time模块使用
    国外、国内各大OJ
    国外、国内各大OJ
  • 原文地址:https://www.cnblogs.com/Tempt/p/9987572.html
Copyright © 2011-2022 走看看