面向对象编程:简称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__ 乘法

最新文章

  1. Java内存管理及GC算法
  2. NodeJS 最快速搭建一个HttpServer
  3. OpenCV学习笔记——OpenCV安装
  4. Texture Atlas
  5. Nodejs学习笔记(一)——初识Nodejs
  6. java jar包解析:打包文件,引入文件
  7. Nop源码分析一
  8. SSIS XML source demo
  9. 算法系列6《MAC》
  10. droidcon 北京2016安卓技术大会——安卓领域国际盛会
  11. 如何解决PHP+MySQL出现乱码的现象
  12. document.forms[].submit()
  13. SQLServer之CHECK约束
  14. php函数 array_change_key_cash
  15. UVA11400-Lighting System Design(动态规划基础)
  16. Java面试题 OOAD & UML+XML+SQL+JDBC & Hibernate
  17. VMware 2017 v14.x 永久许可证激活密钥
  18. Oracle中为表设置自动增长的标识列
  19. [CocoaPods]使用Trunk进行设置
  20. Spark 论文篇-论文中英语单词集

热门文章

  1. Zabbix-(三)监控主机CPU、磁盘、内存并创建监控图形
  2. 微擎签名出错 invalid signature
  3. ubuntu 18 怎样对Windows进行远程桌面控制
  4. 稀疏数组 python描述
  5. 排错:golang运行http服务器直接挂掉无错误提示
  6. Spring中常见的设计模式——单例模式
  7. Stream系列(七)distinct方法使用
  8. CSS中如果实现元素浮动和清除浮动,看这篇文章就足够了
  9. altium designer 20.0.8
  10. 【数据结构】之栈(C语言描述)