面向对象编程:简称OOP。java
是一种程序设计思想。oop把对象做为程序的基本单元,一个对象包含了数据和操做数据的函数。python
在python中,全部数据类型均可以视为对象,也能够自定义对象。自定义的对象数据类型就是面向对象的类class的概念。c++
注意:属于面向对象编程语言的有 c++ 、 ruby 、 python 、 java编程
不支持面向对象的语言有 c语言ruby
类和实例:dom
类:是抽象的模板;一类具备相同特征的事物的统称。编程语言
类里面有:①静态---属性(特征) ---变量 ②动态---方法(行为)----函数函数
定义类:经过class关键字,类型一般都是大写开头的oop
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__ 乘法