三大特性:
1、封装:在类中对数据赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法
2、继承:一个类可以派生出子类,在父类中定义的属性、方法会自动被子类继承
# class People:#经典类
class People(object):#新式类
def __init__(self,,age):
self.name = self.age = age
 
def eat(self):
print('%s is eating' %self.name)
 
def work(self):
print("%s is work hard"%self.name )
 
 
class Man(People): #子类继承People父类
def __init__(self,name,age,sex):
#People.__init__(self, name, age)
super(Man, self).__init__(name, age)#新式
self.sex = sex
 
def drink(self):
print("%s is drinking"%self.sex)
 
class Woman(People):
def get_brith(self):
print("%s is get" % self.name)
 
def eat(self):
People.eat(self)
 
 
m1 = Man("mmmmm",23,"男")
m1.eat()
m1.drink()
 
w1 =Woman("wwwww",22)
w1.get_brith()
w1.eat()# class People:#经典类
class People(object):#新式类
def __init__(self,,age):
self.name = self.age = age
 
def eat(self):
print('%s is eating' %self.name)
 
def work(self):
print("%s is work hard"%self.name )
 
 
class Man(People): #子类继承People父类
def __init__(self,name,age,sex):
#People.__init__(self, name, age)
super(Man, self).__init__(name, age)#新式
self.sex = sex
 
def drink(self):
print("%s is drinking"%self.sex)
 
class Woman(People):
def get_brith(self):
print("%s is get" % self.name)
 
def eat(self):
People.eat(self)
 
 
m1 = Man("mmmmm",23,"男")
m1.eat()
m1.drink()
 
w1 =Woman("wwwww",22)
w1.get_brith()
w1.eat()
 
3、多态:一种接口,多种实现
作用:接口重用
 
 
 
 
 
 
语法:
调用函数-->
 
方法
构造方法
析构方法:与构造函数正好相反,在实例释放、销毁的时候自动执行,通常用于做一些收尾工作,例如:关闭数据库链接或关闭一些临时文件
 
私有方法:def __eat():
 
 
 
两种查询策略;
广度优先:python 3.x python 2.x的新式类
深度优先:python 2.x 经典类是按深度优先的查询策略
 
 
 
 
 
 

Python成长笔记 - 基础篇 (七)python面向对象的更多相关文章

  1. Python成长笔记 - 基础篇 (一)python简介

    一.Python介绍 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),由吉多·范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版发行于1991 ...

  2. Python成长笔记 - 基础篇 (四)函数

    1.面向对象:类(class) 2.面向过程:过程(def) 3.函数式编程:函数(def)----python   1.函数:http://egon09.blog.51cto.com/9161406 ...

  3. Python成长笔记 - 基础篇 (十二)

    本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 主题:学员管理系统 需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的 ...

  4. Python成长笔记 - 基础篇 (十一)

    回顾: 线程:资源的集合:内存共享,两个或多个线程同时修改一份数据时,造成结果可能不正确,必须加锁 进程:运行的最小单元 守护进程:在start之前设置setDemo() 队列queue:作用解耦,使 ...

  5. Python成长笔记 - 基础篇 (十)

    本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...

  6. Python成长笔记 - 基础篇 (六)python模块

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  7. Python成长笔记 - 基础篇 (三)python列表元组、字典、集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码   一.列表和元组的操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义 ...

  8. Python成长笔记 - 基础篇 (二)python基本语法

    Python的设计目标之一是让代码具备高度的可阅读性.它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观.它不像其他的静态语言如C.Pascal那样需要重复书写声明语句,也不像 ...

  9. Python成长笔记 - 基础篇 (十三)--堡垒机

    堡垒机架构 堡垒机的主要作用权限控制和用户行为审计,堡垒机就像一个城堡的大门,城堡里的所有建筑就是你不同的业务系统 , 每个想进入城堡的人都必须经过城堡大门并经过大门守卫的授权,每个进入城堡的人必须且 ...

随机推荐

  1. Eclipse安装部署(配图解)

    Eclipse安装部署 前提:已经成功搭建配置JDK 下载 eclipse, 下载地址: http://www.eclipse.org/downloads/ 解压缩安装包(注意安装路径中不可以有空格) ...

  2. Validate US Telephone Numbers

    function telephoneCheck(str) { // Good luck! //return true; var phone = /^1? ?(\d{3}|\(\d{3}\))[ -]? ...

  3. Myeclipse 安装离线adt的方法 ()

    方法一: 1.下载最新的adt插件ADT-10.0.1.zip (在MyEclipse 10.5 上安装的ADT插件是ADT 20.0.3离线包下载地址: http://dl.cr173.com//s ...

  4. Spring ioc容器

    一.ioc容器 ioc (inversion of  control)即控制反转,把某一个接口选择实现类的控制权转移给Spring容器来管理.调用类对该实现类的依赖关系由ioc容器注入(DI),传统的 ...

  5. WPF 动态更换样式文件

    ApplySkinFromMenuItem("Style/BigImgStyle.xaml", "Style/FileListStyle.xaml"); //换 ...

  6. Excel2016右键新建工作表,打开时提示“因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。”的解决办法

    上午新建excel工作表时,发现新建完之后居然打不开 提示: 尼玛这坑爹的,难道我的Excel坏了?? 排查问题之后发现 只有新建“Microsoft Excel 工作表”时会出现这种问题,新建“Wo ...

  7. Android之ImageSwitcher

    要点: (查看Api总结) 1:ImageSwitcher 继承 ViewSwitcher, (ViewSwitcher 有继承FrameLayout ) 2: 要实现切图必须实现 ViewSwitc ...

  8. 用muduo实现memcached协议的例子

    最近花了两天时间用 muduo 部分实现了 memcached 服务器协议,代码位于 examples/memcached/server,能通过 memcached 的大部分测试用例(incr/dec ...

  9. Android安全开发之WebView中的地雷

    Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...

  10. ibatis 批量插入oracle总结

    1. 使用批量插入最先想到如下的插入语句 insert into a (id,name) values('','') ,('','') 但是 oracle 并不支持这种写法 然后查询得知可以使用如下写 ...