zoukankan      html  css  js  c++  java
  • 笔记||Python3之面向对象

    面向对象编程:简称OOP。

           是一种程序设计思想。oop把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

           在python中,所有数据类型都可以视为对象,也可以自定义对象。自定义的对象数据类型就是面向对象的类class的概念。

           注意:属于面向对象编程语言的有 c++ 、  ruby 、  python  、 java

                   不支持面向对象的语言有  c语言

    类和实例:

           :是抽象的模板;一类具有相同特征的事物的统称。

                 类里面有:①静态---属性(特征) ---变量  ②动态---方法(行为)----函数

                 定义类:通过class关键字,类型通常都是大写开头的

                            object  ----- 表示该类是从哪个类继承下来的

                            通常如果没有合适的继承类,就使用object类,这是所有类都会继承的类

                            class  Student(object):

                                   pass

           实例:根据类创建出来的一个个具体的'对象',每个对象都拥有相同的方法,单各自的数据可能不同。

                    类是实例的抽象化概念;实例是类的具体实例化体现。

                    创建实例:通过类名+()实现的   如  bar = Student()

                                    也可以自由的给实例变量绑定属性   如  bar.name = Student()

                                    由于类可以起到模板作用,因此,可以在创建实例时,把一些我们认为绑定的属性强制填写进去。通过一个特殊的_int_方法,在创建时,就把name、score等属性绑上去。

                                    有了_int_方法,在创建实例时,就不能传入空的参数了,必须传入_int_方法匹配的参数,但self不需要传,python解释器会自已把实例变量传进去。

                                    def  Student(object):

                                           def _int_(self,name,score):

                                                    self.name = name

                                                    self.score = score

    实例化操作:1 - 类里面的变量  --- 属性

                      2 - 类里面的函数  --- 方法

                      3 - 创建实例    t1 = Tiger()

    静态属性和实例属性

           1- 静态属性  ----- 也叫类属性  属于整个类的

                                    用法  ---- ①类.属性   ②实例.属性

           2 - 实例属性  ----- 定义在初始化方法  _init__里面

                                     一般在创建实例时就给定

                                     只要创建实例 ---  def  _init(self):   初始化方法肯定会调用

                                     self 只是代表词,并不是关键字--可以替换,但不建议替换! 不能缺省

                                     id(self)

                                     实例化属性  --- 只能  实例.属性

                                     self  这个实例的本身

    静态方法和实例方法

           1 - 静态方法  ----- 属于整个类   类可以直接调用,不需要实例化   ----  类.方法  /  实例.方法

                                     用@stacticmethod修饰  只能修饰紧跟的那一个

           2 - 实例方法  ----- 有self  ----  用法  实例.方法

    取随机数:  from random  import  randint

                        print(randint(0,5)) ----- 取 0 1 2 3 4 5  闭区间  随机  

    时间处理:  import time

                        print(time.time())  ---- 单位是s秒  从1970算起

    继承:1 - 继承关系可以是多个父类

            2 - 重写 -- 在父类跟子类之间的一个多态的体现

            3 - 在重写情况下,调用父类的方法

                  super(SouTiger,s1).roar()

                  super(子类类名,子类的实例名).roar()

            4 -  __name  属于私有属性

     类的专有方法有:

             ① __int__   构造函数  在生成对象时调用

             ② __del__  析构函数  释放对象时使用

             ③ __repr__ 打印 转换

             ④ __add__ 加运算

             ⑤ __sub__ 减运算

             ⑥ __call__ 函数调用

             ⑦ __len__  获得长度

             ⑧ __mul__  乘运算

             ⑨ __mod__ 求余计算

             ⑩ __pow__ 乘法

  • 相关阅读:
    设计与声明
    字符串匹配算法——KMP、BM、Sunday
    红黑树——原理
    Linux命令——监视相关
    资源管理
    排序算法——QuickSort、MergeSort、HeapSort(C++实现)
    智能指针——使用与实现
    进程间通信——实现
    构造/析构/赋值运算
    物理内存管理
  • 原文地址:https://www.cnblogs.com/peipei-Study/p/11949811.html
Copyright © 2011-2022 走看看