系列文章:[传送门]

  Python对象是Python语言的核心部分。Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程。

面向对象的最主要目的是提高程序的重复使用性。

Python的类

例子

class Bird(object):
have_feather = True
way_of_reproduction = 'egg'
print (id(Bird))

#内建函数id():唯一的身份标识

#两个变量(属性),一个是有羽毛(have_feather),一个是生殖方式(way_of_reproduction)

实例化

summer = Bird()
print (summer.way_of_reproduction)

#对象.属性(object.attribute)访问属性值

类中方法(method)

   类的一些“行为”属性为方法(method)。Python中通过在类的内部定义函数,来说明方法。

例子

class Bird(object):
have_feather = True
way_of_reproduction = 'egg'
def move(self, dx, dy):
position = [0,0]
position[0] = position[0] + dx
position[1] = position[1] + dy
return position summer = Bird()
print ('after move:',summer.move(5,8))

#参数中有一个self,它是为了方便我们引用对象自身。方法的第一个参数必须是self。

子类

  类别本身还可以进一步细分成子类

在OOP中,我们通过继承(inheritance)来表达上述概念

class Chicken(Bird):
way_of_move = 'walk'
possible_in_KFC = True class Oriole(Bird):
way_of_move = 'fly'
possible_in_KFC = False summer = Chicken()
print (summer.have_feather)
print (summer.move(5,8))

#在类定义时,括号里为Bird。这说明,Chicken是属于鸟类(Bird)的一个子类,即Chicken继承自Bird。自然而然,Bird就是Chicken的父类。Chicken将享有Bird的所有属性。

#尽管我只声明了summer是鸡类,它通过继承享有了父类的属性(无论是变量属性have_feather还是方法属性move)

 

self

例子

class Human(object):
laugh = 'hahahaha'
def show_laugh(self):
print (self.laugh)
def laugh_100th(self):
for i in range(100):
self.show_laugh() li_lei = Human()
li_lei.laugh_100th()

#这里有一个类属性laugh。在方法show_laugh()中,通过self.laugh,调用了该属性的值。

#还可以用相同的方式调用其它方法。方法show_laugh(),在方法laugh_100th中()被调用。

__init__()

  __init__()是一个特殊方法(special method),用于初始化。Python有一些特殊方法。Python会特殊的对待。

例子

class happyBird(Bird):
def __init__(self,more_words):
print ('We are happy birds.',more_words) summer = happyBird('Happy,Happy!!')

会有下面输出

We are happy birds.Happy,Happy!

#创建了summer对象,但__init__()方法被自动调用了。

总结

  #所有的Python 对象都拥有三个特性:身份,类型和值。

 

感谢及资源共享

    

    路上走来一步一个脚印,希望大家和我一起。

    感谢读者!很喜欢你们给我的支持。如果支持,点个赞。

    知识来源: http://book.douban.com/doulist/3870144/

Python快速学习05:面向对象的更多相关文章

  1. 60分钟Python快速学习(给发哥一个交代)

    60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空 ...

  2. 60分钟Python快速学习(转)

    60分钟Python快速学习(给发哥一个交代) 阅读目录 第一步:开发环境搭建: 第一个Python功能:初识Python 02.Python中定义变量不需要数据类型 03.在Pythod中定义方法 ...

  3. 60分钟Python快速学习

    之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空格缩进表示等. 今天自己用了6 ...

  4. Python快速学习01:Eclipse上配置PyDev & 'Hello World !'

    前言 系列文章:[传送门] 答应了Vamei,帮他传文章,Python,顺自己学学. 很喜欢这种黏黏的语言 突然发现--我用的GoAgent(谷歌FQ软件),竟然是Python编的. 简介 Pytho ...

  5. Python快速学习10: 循环的对象及设计 (生活的规律)

    前言 系列文章:[传送门] 生活逐渐规律,按时睡觉.今天写博客,明天补时间看会书.慢慢的时间很珍惜 我很喜欢! 时钟就像个循环体,我们将它融入生活. 正文 循环对象的并不是随着Python的诞生就存在 ...

  6. Python快速学习04:循环 & 函数

    前言 系列文章:[传送门] 也就今天认识了 LC ,很开心. 本文目录 循环 for while 中断 函数 函数定义 函数调用 for循环 Python 中的for 循环象shell 脚本里的for ...

  7. python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试

    一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...

  8. python基础学习笔记——面向对象初识

    面向对象初识 python中一切皆对象. 类有两种: 新式类:在py3中所有类都是新式类 经典类:在py2中只有类本身继承了object类才叫做新式类,默认是经典类 class Person: cou ...

  9. Python进阶学习之面向对象

    目录 面向对象 私有属性 面向对象   python也有面向对象的编程,它与C++中的类有点相似.它也只是运算符重载,继承. class Test: num=0 def __init__(self): ...

随机推荐

  1. Java在ServletContextListener、过滤器、拦截器解决对象无法注入问题

    1.通用方法: // 数据库日志操作对象 private LogInfoServiceIFC logInfoServiceProxy; @Override public void contextIni ...

  2. LOJ-10096(强连通+bfs)

    题目链接:传送门 思路: 强连通缩点,重建图,然后广搜找最长路径. #include<iostream> #include<cstdio> #include<cstrin ...

  3. Unity3D中AssetBundle应用

    工程中的模型等资源转化为Prefab后,打包成AssetBundle,可以大幅降低资源的空间占有度,并且提高资源加载的效率. 一.AssetBundle的打包 先看下打包Prefab的脚本代码,这段脚 ...

  4. eclipse 无法记住svn密码

    每次要求输入密码,很恼人.经过一番折腾,在stackoverflow上找到了解决方案,上面大神果然多 简单的说,就是通过查看工作空间的日志文件,发现报了个java异常,缺少一个class文件(org. ...

  5. 前端基础之 html

    ---恢复内容开始--- web服务本质 import socket sock=socket.socket() sock.bind(()) sock.listen() where True: conn ...

  6. GC算法基础

    寻找垃圾对象的算法:1. 引用计数(无法处理循环引用) 2. 根寻法(被广泛引用在gc算法中) 清理垃圾的算法: 1. 标记复制  2. 标记清理  3. 标记整理 分代算法的好处: 1. 分代处理, ...

  7. Linux shell脚本学习(一)

    一.shell脚本简介 shell脚本是用shell脚本语法将shell命令组织起来形成的文件形式.Shell脚本与Windows/Dos 下的批处理相似,主要为了将大量命令通过一个纯文本文件一次执行 ...

  8. leecode第二天-使用异或找出数组中的非重复元素

    leecode题目描述如下: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 思路: 最开始想到的是使用排序,排序之后就很容易找到非重复元素了. ...

  9. android hal 诠释

    历史原因使Android系统有了HAL,它的角色相当于一个中间人,对上层,它负责给JNI提供调用kernel的方法,对下层,它所提供的方法包含能够访问kernel的函数,即kernel提供给上层的AP ...

  10. Java垃圾回收概览

    GC要解决三个主要的问题: 哪些内存需要回收? 什么时候回收? 如何回收? 哪些内存需要回收? 最简单的是引用计数(reference count),缺陷是无法解决循环引用.于是更快点的算法是可达性分 ...