Python 中的用户自定义类型
Python中面向对象的技术
Python是面向对象的编程语言,自然提供了面向对象的编程方法。但要给面向对象的编程方法下一个定义,是很困难的。问题关键是理解对象
的含义。对象的含义是广泛的,它是对现实世界和概念世界的抽象、模拟和提炼。
对象的方法与函数类似,但是还有两方面的区别:
1-方法定义在类的内部,是类的一部分,他们之间的关系是很明显的;
2-调用的语法不一样;
>>> class Time:
... pass
...
...
>>> def printTime(time):
... print str(time.hours)
...
...
>>> now = Time();
>>> now.hours = 10;
>>> printTime(now)
10
>>>
我们通过改变缩进可以改变函数的作用域的归属:
>>> class Time:
... def printTime(self):
... print str(self.hours)
...
... def increment(self,hours):
... self.hours = hours + self.hours
... while self.hours >= 12:
... self.hours = self.hours - 12
... self.day = self.day + 1
...
...
...
...
>>>
可选择的参数
我们曾见到一些内置的函数,能够接受的参数个数是可变的。同样,你也能够定义可变参数的函数。下面这个函数求从数head开始,到tail为尾,步长为step的所有数之和。
>>> def total(head,tail,step):
... temp = 0;
... while head <= tail:
... temp = temp + head;
... head = head + step;
...
... return temp;
...
...
>>> total(1,100)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: total() takes exactly 3 arguments (2 given)
>>> total(1,100,3)
1717
>>> def total(head,tail,step = 2):
... temp = 0;
... while head <= tail:
... temp = temp + head;
... head = head + step;
...
... return temp;
...
...
>>> total(1,100);
2500
>>> total(1,100,3);
1717
>>>
Python 中的用户自定义类型的更多相关文章
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- Python 中的枚举类型~转
Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...
- python中对象、类型和元类之间的关系
在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ...
- Python中的集合类型分类和集合类型操作符解析
集合类型 数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements). Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...
- Python中的鸭子类型
今天,我们来聊一聊Python中的鸭子类型(duck typing). 编程语言具有类型概念,例如Python中有数字类型.字符串类型.布尔类型,或者更加复杂的结构,例如元组tuple.列表list. ...
- Python 中的鸭子类型和猴子补丁
原文链接: Python 中的鸭子类型和猴子补丁 大家好,我是老王. Python 开发者可能都听说过鸭子类型和猴子补丁这两个词,即使没听过,也大概率写过相关的代码,只不过并不了解其背后的技术要点是这 ...
- Python学习笔记整理(三)Python中的动态类型简介
Python中只有一个赋值模型 一.缺少类型声明语句的情况 在Python中,类型是在运行过程中自动决定的,而不是通过代码声明.这意味着没有必要事声明变量.只要记住,这个概念实质上对变量,对象和它们之 ...
- 顺序表的原理与python中的list类型
数据是如何在内存中存储的? 在32位的计算机上,1个字节有8位,内存寻址的最小单位就是字节.假设我们有一个int类型的值,它从0x10开始,一个int占据4个字节,则其结束于0x13. 那么数据类型有 ...
- python中使用 C 类型的数组以及ctypes 的用法
Python 在 ctypes 中为我们提供了类似C语言的数据类型, 它的用途(我理解的)可能是: (1) 与 其他语言(如 C.Delphi 等)写的动态连接库DLL 进行交换数据,因为 pytho ...
随机推荐
- Hdu 5050 Divided Land
题目要求就是做求两个二进制数的gcd,如果是用java的话,这题很简单.但也可以用C++做,只能先给自己留下这个坑了,还在研究c++的做法. import java.math.BigInteger; ...
- 工商管理硕士(MBA)-北大国际MBA
工商管理硕士(MBA)-北大国际MBA [EMBA校友跨届晚会]不管风雨彩虹 我们永远在一起
- PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门
XPAth技术 XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点.主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]. Xapth主要用来 ...
- MYSQL - 创建数据库时设置编码
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE DATABASE 的语法: CRE ...
- ContentProvider中的数据生成时机
目录结构: , 先给个结论: 仅仅是实例化mySqliteHelper()这个类的时候是不会创建数据库的,实际上数据库的真正创建是在helper.getWritableDatabase()的方法执行后 ...
- Python 操作Redis
redis对比monoDB: redis和memcache 是key value非关系型数据库,mysql是关系型数据库,表的结构和保存的内容有严格的要求,关系型数据库无法保存临时数据或不标准的数据, ...
- django 时间计数
value必须replace(tzinfo=None)变成datetime格式,否则格式不对不能相减.
- thiscall仅仅应用于“C++”成员函数(this指针存放于CX寄存器,参数从右到左压)
_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈.VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上" ...
- QT5.6所开放的7个新模块(图表,虚拟键盘,性能分析,静态分析,测试正好,2D渲染)
The modules newly available to open source users are: Qt Charts Qt Data Visualization Qt Virtual Key ...
- 转:Javascript的10个设计缺陷
作者: 阮一峰 日期: 2011年6月30日 前几篇文章,我经常说Javascript的设计不够严谨,有很多失误. 今天的这一篇,前半部分就谈为什么会这样,后半部分将列举Javascript的10个设 ...