Python -- 对象和面向对象
来源:互联网 发布:ubuntu 打开文件 编辑:程序博客网 时间:2024/04/30 05:15
1. 模块导入
在Python中,有两种方法可以导入模块:
(1) import module,相当于Java中的import module
(2) from module import *,相当于Java中的import module.*
何时应该使用from module import:
a)如果经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名
b)如果想要有选择地导入某些属性和方法,而不想要其它的
c)如果模块包含的属性和方法与自己的某个模块同名,使用些方法来导入模块来避免名字冲突
Caution:
尽量少用from module import *,因为判定一个特殊的函数或属性是从哪来的有些困难,并且会造成高度和重构都困难。
2. 类的定义
(1)在Python中用Class来定义一个类
(2)如果类中没有定义任何方法或属性,可以使用Pass关键字。特别是,当删空函数或类时,糨是一个很好的占位符。
(3)在Python中,类的基类只是简单地列在类名后面的小括号里。如:class FileInfo(UserDict):
UserDict是基类,而且FileInfo类是从UserDict类继承来的。
Python支持多重继承。只要在类名后面的小括号中列出许多要继承的类名,并且以逗号分隔就可以了。
(4)__init__在Python中可以得到最接近构造函数的东西,并且它也扮演着非常相似的角色。所以它并不是构造函数,因为对象在调用__init__时已经被构造出来了。
__init__方法是可选的,但是一旦定义了,就必须记得显示调用父类的__init__方法(如果它定义了)
(5)每个类方法的第一个参数,包括__init__,都是指向类的当前实例的引用。按照习惯这个参数总是被称为self。在__init__方法中,self指向新创建的对象;在其它的类方法中,它指向方法被调用的类实例。尽管当定义方法时你需要明确指定self,但在调用方法时,不用指定它 ,Python会自动加上的。
def __init__(self, filename = None):
当从类中调用一个父类的一个方法时,必须包括self参数。
3. 类的实例化
(1)在Python中不需要明确地释放实例,因为当指派给它们的变量超出作用域时,它们会被自动地释放。因此,内存泄漏在Python中很少见。
4. 类的封装
(1)Python支持数据属性。
(2)Python没有任何形式的函数重载。
5. 专用类方法
除了普通的类方法,Python类还可以定义专用方法。专用方法是在特殊情况下或当使用特别语法时由Python替你调用的,而不是在代码中直接调用。
6. 类属性
类属性既可以通过直接对类的引用,也可以通过对类的任意实例的引用来使用。
在Python中,只有类属性可以定义在类中,数据属性定义在__init__方法中。
类属性可以作为类级别的常量来使用,但是它们不是真正的常量。
7. 私有函数
在Python中的私有概念:
a)私有函数不可以从它们的模块外面被调用
b)私有类方法不能够从它们的类外面被调用
c)私有属性不能够从它们的类外面被访问
如果一个Python函数,类方法,或属性的名字以两个下划线开始,它是私有的。
- Python -- 对象和面向对象
- JS和面向对象
- 数组和面向对象
- 类、对象和面向对象
- Dive in Python学习笔记五:对象和面向对象
- 《Dive into Python》读书笔记之对象和面向对象
- [译]Python提高:Python类和面向对象编程
- 面向过程和面向对象
- 面向对象和面向过程
- 面向过程和面向对象
- 面向过程和面向对象
- 面向对象和面向过程
- 面向过程和面向对象
- java基础和面向对象
- 面向过程和面向对象
- 面向对象和面向过程
- 面向对象和面向过程
- 闭包和面向对象
- Python3.x和Python2.x的区别
- 关于CDialogResize
- 数据库设计扫盲之关系型数据库中的面向对象
- 数据结构实现过程
- 如何添加一条虚线
- Python -- 对象和面向对象
- ORACLE标签收藏
- JSP分页技术实现
- VC++2005实现完全端口例程
- 在我浮躁的时候读到这样一篇文章,你也看看吧!
- POSIX thread (pthread) 多线程编程简介
- SQL 多表联合查询
- Windows常用快捷键
- 图片无缝滚动代码(DIV+CSS+JavaScript)