Python15-07面向对象

1. 面向对象编程

1.1 简介

面向对象的三个特性:封装、多态、继承。

私有方法、私有属性

类变量、实例变量

面向过程编程:告诉计算机一步一步的要做什么。

面向对象编程的简单演示:

#定义一个类

class Dog:

def __init__(self,name):  #构造函数,在实例化时做一些类的初始化工作。

self.name = name

#定义属性

def bulk(self):

print("%s:汪汪汪" % self.name)

d1 = Dog("")

d2 = Dog("")

d3 = Dog("")

d4 = Dog("")

d1.bulk()

d2.bulk()

d3.bulk()

d4.bulk()

执行结果:

C:\Users\liuxiaotao\AppData\Local\Programs\Python\Python35-32\python.exe
C:/Users/liuxiaotao/Desktop/Python/code/day07/object_dog.py

陈:汪汪汪

王:汪汪汪

张:汪汪汪

李:汪汪汪

把一个类编程具体对象的过程,叫做实例化。

1.2 析构函数

在实例释放、销毁的时候自动执行的函数,通常做一些收尾工作,如关闭数据库连接等。如果需要关闭,可以手动del删除对象。

class people(object):

def __init__(self,name,age,country="china"):

self.name = name

self.age = age

self.country = country

def eat(self):

print("%s is eatting" % self.name)

def __del__(self):

print("%s is dead" % self.name)

def sleepping(self):

print("%s is sleepping" % self.name)

备注:该模块执行结束后,会自动执行析构函数,这里是打印一句话。

1.3 私有属性和私有方法

class people(object):

def __init__(self,name,age,country="china"):

self._name = name     
#私有属性

self.age = age

self.country = country

def _eat(self):           
#私有方法

print("%s is eatting" % self.name)

def __del__(self):

print("%s is dead" % self.name)

def _sleepping(self):

print("%s is sleepping" % self.name)

私有属性和私有方法只能在当前实例中进行调用,该模块以外的实例无法调用。

1.4 继承

# _*_ coding:utf-8 _*_

# Author :kaige

class people:#(经典类写法)

class people(object):(新式类写法)

def __init__(self,name,age,country="china"):

self.name =
name

self.age =
age

self.country
= country

def eat(self):

print("%s is eatting" % self.name)

def __del__(self):

print("%s is dead" % self.name)

def sleepping(self):

print("%s is sleepping" % self.name)

class men(people):

def piao(self):               
#子类自己定义的方法

print("piaoing.......done")

m1 = men("kaige",22)

m1.eat()             
#继承父类的方法

m1.piao()            
#子类自己的方法

class people:

def __init__(self,name,age,country="china"):

self.name = name

self.age = age

self.country = country

def eat(self):

print("%s is eatting" % self.name)

#def
__del__(self):

#print("%s is dead" %
self.name)

def sleepping(self):

print("%s is sleepping" % self.name)

class men(people):

def piao(self):

print("piaoing.......done")

class women(people):

def __init__(self,name,age,money):      
#给某个类单独添加属性

people.__init__(self,name,age,country="china")

super(women,self).__init__(name,age,country="china")#第二种方法

self.money = money

def brun(self):

print("%s brunning......wiht %s done" % (self.name,self.money))

m1 = men("kaige",22)

wo2 = women("xiaoqing",26,2000)

m1.eat()

m1.piao()

print("%s come from %s" % (m1.name,m1.country))

wo2.brun()

1.5 多继承的优先原则

新式类和经典类的区别在于多继承的顺序问题。

继承原则有广度优先和深度优先两种原则:


python3中都是广度优先


python2中经典类是深度优先原则,新式类是广度优先原则

以上演示因为是python3,遵循广度有限的原则:

1.6 多态

多态特性:一种接口,多种实现

null

附件列表

时间: 2024-11-05 17:28:45

Python15-07面向对象的相关文章

07.面向对象基础

面向对象思维方法 1.首先确定谁来做,其次确定怎么做: 2.首先考虑整体,其次考虑局部: 3.首先考虑抽象,其次考虑具体 创建类的方法 属性:成员变量,主要用于描述类的状态 方法:成员方法,主要用于描述类的行为 类的表示方法 生成对象的方法 对象的使用方法 使用对象调用变量和函数 1.对象 .变量 2.对象 . 函数()        classDog{ String name; int age; String color; void jump(){ System.out.println("ju

python15 - day07 面向对象

1. 面向对象编程 1.1 简介 面向对象的三个特性:封装.多态.继承. 私有方法.私有属性 类变量.实例变量 面向过程编程:告诉计算机一步一步的要做什么. 面向对象编程的简单演示: #定义一个类 class Dog: def __init__(self,name): #构造函数,在实例化时做一些类的初始化工作. self.name = name #定义属性 def bulk(self): print("%s:汪汪汪" % self.name) d1 = Dog("陈&quo

(一)Python入门-6面向对象编程:07面向对象三大特征(封装、继承、多态)-继承

一:面向对象三大特征介绍 Python是面向对象的语言,也支持面向对象编程的三大特性:继承.封装(隐藏).多态. 封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法.相当于将“细节封装起来”,只 对外暴露“相关调用方法”. 通过前面学习的“私有属性.私有方法”的方式,实现“封装”.Python 追求简洁的语法,没有严格的语法级别的“访问控制符”,更多的是依靠程序员自觉实现. 继承 继承可以让子类具有父类的特性,提高了代码的重用性. 从设计上是一种增量进化,原有父类设计不变的情况下,可以

07 面向对象(下)

作者:thoughtInShare 出处:http://www.cnblogs.com/thoughtInShare 欢迎转载,也请保留这段声明.谢谢! 1.抽象类 之所以引进抽象类的概念是因为某些情况下,父类只需要告诉子类应该包含什么样的方法,但是没有必要实现这些具体方法,而由子类来是实现: 抽象方法使用abstract来修饰,含有抽象方法的类只能定义因此,为抽象类,但是抽象方法可以没有抽象类: 因此,抽象类无法使用new关键字来创建对象:只能当做作父类被其他子类继承:以发挥多态的优势,使得程

JavaSE知识-07(面向对象-构造方法&静态static)

构造方法Constructor概述和格式 构造方法概述和作用 给对象的数据(属性)进行初始化 构造方法格式特点 a:方法名与类名相同(大小也要与类名一致) b:没有返回值类型,连void都没有 c:没有具体的返回值return; 构造方法的重载 重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表 构造方法注意事项 a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法. b:如果我们给出了构造方法,系统将不再提供默认的无参构造方法. 注意:这个时候,如果我们还想使用无参

0505.Net基础班第二十天(基础加强总复习)

1.new关键字 1).创建对象 2).隐藏从父类那里继承过来的成员 2.访问修饰符 public:公开的,公共的 private:私有的,只能在当前类的内部访问,类中成员们,如果不加访问修饰符,默认就是private procteced:受保护的,可以在当前类的内部访问,也可以在该类的子类中访问 internal:在当前项目中都可以访问. protected internal: 能够修饰类的访问修饰符只有两个,internal和public 3.常用的关键字 this 1.当前类的对象 2.调

Czbk Web前端视频教程 前端全套教程 汪磊2015版Web前端视频教程 共12章 包含源码

<Web大前端-北京1期就业班[2015-11-2开课]>├<1.html>│ ├<1017_HTML01>│ │ ├01_基础班介绍.avi│ │ ├02_文件和文件夹管理.avi│ │ ├03_特殊案件和快捷键的使用.avi│ │ ├04_互联网原理.avi│ │ ├05_服务器和http.avi│ │ ├06_服务器的小演示.avi│ │ ├07_认识txt纯文本格式.avi│ │ ├08_HTML是描述文档语义的语言.avi│ │ ├09_HTML语义.avi│

python大保健系列

一.语言基础 01 编程介绍 变量 垃圾回收 02 数据类型 运算符(解压赋值) 03 流程控制 if while for 04 整形 字符串 列表 05 元组 字典 集合 06 练习 二.字符编码 文件操作 01 字符编码 02 文件操作 三.函数 01 函数概念 返回值 参数 02 函数名 函数嵌套 名称空间和作用域 03 函数递归 04 二分法 生成式 匿名函数  常用内置方法 05 迭代器 生成器 06 闭包函数 装饰器 07 面条版购物车小练习 01 编程介绍 变量 垃圾回收 02 数

百度房间卡是否可骄傲是快乐积分拉斯科

http://www.ebay.com/cln/ycn6646/-/167568259015/2015.02.07 http://www.ebay.com/cln/gon-n31/-/167197496017/2015.02.07 http://www.ebay.com/cln/hu_d027/-/167453250013/2015.02.07 http://www.ebay.com/cln/ywa2962/-/167301832012/2015.02.07 http://www.ebay.co

python面向对象07/异常处理

目录 python面向对象07/异常处理 1.异常错误分类 2.什么是异常? 3.异常处理 4.为什么要有异常处理? 5.异常处理的两种方式 5.1 if判断 5.2 try python面向对象07/异常处理 1.异常错误分类 语法错误: # if 2 > 1 # print(222) # # dic = {'name'; 'alex'} # tu = (2, 3, 4'' 6 ) 逻辑错误: # num = int(input('请输入数字')) # dic = {'name': '海狗',