Python学习笔记(十五):类基础
以Mark Lutz著的《Python学习手册》为教程,每天花1个小时左右时间学习,争取两周完成。 --- 写在前面的话
2013-7-24 23:59 学习笔记
1,Python中的大多数OOP故事都可以简化为一个表达式:object.attribute 当类启用时,为了找出attribute首次出现的地方,Python会先搜索Object,然后是该对象之上的所有类,安装由下至上、由左至右的方式搜索。
2,调用类的函数时,总是隐含着类的实例。附加在实例上的属性只属于那些实例,但附加在类上的属性由所有子类和实例共享。
3,同def一样,class也是可执行语句,执行时会产生新的类对象,并将其复制给class头部的变量名。class语句内的顶层赋值语句(不在def中)会创建类的属性,为所有实例共享。在方法内对self属性赋值会产生每个实例自己的属性。例如:
class FirstClass:
def setData(self, value):
self.data = value def display(self):
print self.data x = FirstClass()
y = FirstClass()
x.setData(3.14)
y.setData('hello world')
x.display()
y.display()
输出结果为:
3.14
hello world
4,超类列在了类开头的括号中。类从超类中继承所有可读属性。例如:
class FirstClass:
def setData(self, value):
self.data = value def display(self):
print self.data class SecondClass(FirstClass):
def display(self):
print 'secondClass: %s' %self.data x = SecondClass()
x.setData('linlin')
x.display()
输出结果为:
secondClass: linlin
5,类名称总是存在于模块中,类也是模块的属性。
6,Python通过在类中定义双下划线命名的方法(具体的方法名,Python已经规定好)来实现运算符重载。__init__方法则实现的是构造函数。例如:
class FirstClass:
def setData(self, value):
self.data = value def display(self):
print self.data class SecondClass(FirstClass):
def __init__(self, value):
self.data = value def __add__(self, other):
return SecondClass(self.data + other) def __mul__(self, other):
return SecondClass(self.data * other) x = SecondClass('linlin')
x.display()
y = x + 'mo'
y.display()
z = x * 3
z.display()
输出结果为:
linlin
linlinmo
linlinlinlinlinlin
Python学习笔记(十五):类基础的更多相关文章
- python 学习笔记十五 django基础
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- python 学习笔记十五 web框架
python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自 ...
- python学习笔记(十五)-unittest单元测试的一个框架
unittest 单元测试的一个框架什么框架 一堆工具的集合. TestCase TestSuite 测试套件,多个用例在一起 TestLoader是用来加载TestCase到TestSuite中的 ...
- python 学习笔记十二 CSS基础(进阶篇)
1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与 ...
- python 学习笔记十二 html基础(进阶篇)
HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身 是一种文本文件,通过在文本文件中添加标记符, 可以告诉浏览 ...
- python学习笔记十五:日期时间处理笔记
#-*- coding: utf-8 -*- import datetime #给定日期向后N天的日期 def dateadd_day(days): d1 = datetime.datetime.no ...
- python学习笔记(十五)-异常处理
money = input('输入多少钱:') months = input('还几个月:') try: res = calc(int(money),int(months)) except ZeroD ...
- python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- Python学习笔记(五)
Python学习笔记(五): 文件操作 另一种文件打开方式-with 作业-三级菜单高大上版 1. 知识点 能调用方法的一定是对象 涉及文件的三个过程:打开-操作-关闭 python3中一个汉字就是一 ...
随机推荐
- Dynamics CRM 2013 初体验(3):新增加的功能
新系统除了修补系统历史漏洞外当然还会添加些比较有意思的新功能,至于这些新功能是否好用那就得看它是否能经过咱们这些使用者的考验了.Dynamics CRM 2013系统将不再支持Dynamics CRM ...
- 使用Node.js快速搭建WebSocket server
原文地址:http://my.oschina.net/yushulx/blog/309413 目录[-] 安装 服务端 客户端 参考 安装 ? 1 npm install ws 服务端 server. ...
- RPATH与RUNPATH
RPATH与RUNPATH 时间 2011-11-01 21:46:44 Qt Labs China 原文 http://labs.qt.nokia.com.cn/2011/11/01/rpath- ...
- hdu 1575 Tr A(矩阵快速幂乘法优化算法)
Problem Description A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%. Input 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n ...
- Newton‘ method 的优缺点
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzE1Mjg5NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- The 5th tip of DB Query Analyzer
The 5th tip of DB Query Analyzer Ma Genfeng (Guangdong UnitollServices incorporated, G ...
- CentOS 安装nload(流量统计)
yum install gcc gcc-c++ ncurses-devel wget http://www.roland-riegel.de/nload/nload-0.7.2.tar.gz tar ...
- ORACLE 主要后台进程1
Oracle Database Background Processes: 1.Database writer (DBWn)The database writer writes modified bl ...
- UVA 11212 Editing a Book
题意: 有一篇由n个自然段组成的文章.希望将他们排成递增序列.只能剪贴和粘贴交替进行,剪贴时可以剪贴一段连续的自然段. 分析: 用IDA*算法求解.当3*d+h>maxd时剪枝. 代码: #in ...
- Linux 脚本整理
本页主要用来记录一点 Shell 脚本. 1. cd - #切换回上一次的路径 这个命令对 cd 频繁的操作很有用 2. sudo !! #授权给上次录入的命令 比如一般非 root 用户在执行 if ...