1.使用from module import导入模块
Python有两种导入模块的方法,两种都有用,一种前面已经介绍过了为:import module;第二种导入的基本语法为:from module import attr,和第一种的一个重要区别是,attr被直接导入到局部名字空间去了,可以直接使用,而不需要加上模块限定名。你可以导入独立的项或使用from module import * 来导入所有东西。
#------------------------------------------------------------------------------- # coding: utf-8 # Purpose: 对象和面向对象 # # Author: daokun.zhu # # Created: 19/02/2013 # Copyright: (c) daokun.zhu 2013 #------------------------------------------------------------------------------- import types from types import FunctionType if __name__ == '__main__': print(types.FunctionType) #import types 生效了,输出值为:<class 'function'> print(FunctionType) #from types import FunctionType,输出值为:<class 'function'>
(1)types模块不包含方法,只是表示每种Python对象类型的属性。这个属性必须用模块名types来进行限定。
(2)from types import FunctionType使得FunctionType被导入到了当前名字空间,FunctionType可以直接使用,与types无关了。
2.定义类
Python是完全面向对象的:你可以定义自己的类,从自己的或内置的类继承,然后从你定义的类创建对象。
在Python中定义类很简单,就像定义函数,没有单独的接口定义。只要定义类,然后就可以开始编码。Python类以保留字class开始,后面跟着类名。
最简单的Python类
class Loaf: pass
(1)这个类的名字是Loaf,它没有从其他类继承。类名通常是第一个字母大写。
(2)这个类没有定义任何方法和属性,但是从语法上,需要在定义中有些东西,所以使用pass,这是一个Python的保留字,仅仅表示“向前走,不要往这看”。它是一个什么都不做的占位符语句,类似于java中的大括号空间({})。
(3)在类中所有的东西都要缩进。
from collections import UserDict class FileInfo(UserDict): "store file metadata" def __init__(self,filename=None): UserDict.__init__(self) self["name"] = filename
(1)在Python中,类的基类只是简单地列在类名后面的小括号里,所有FileInfo是从UserDict类继承来的。UserDict是一个像字典一样工作的类,它允许你完全子类化字典数据类型,同时增加你自己的行为。
(2)Python支持多重继承。在类名后面的小括号中,你可以列出要继承的类名,以逗号隔开。
(3)类也可以有doc strings,就像方法和函数一样。(“store file metadata”)。
(4)__init__在类的实例创建后被立即调用,看上去像类的构造函数,其实不是,因为对象在调用__init__时已经被构造出来了,它只是扮演了一个和构造函数非常相似的角色。
(5)每个方法的第一个参数,都是指向类的当前实例的引用。按照习惯被称为self。定义方法时必须明确指出,但调用时不用指定。类似于java中的this。
(6)__init__方法可以接受任意数目的参数,就像函数一样,也可以有缺省值。
(7)这个类可以像字典一样工作,我们将参数filename赋值给对象name关键字,作为它的值。
(8)__init__方法没有返回值。
NOTE:self
当定义自己的类方法时,你必须明确将self作为每一个方法的第一个参数列出,包括__init__,当从你的类中调用父类的一个方法时,必须包括self参数。在类外部调用方法时,不需要对self指定任何值。
NOTE:__init__
__init__方法是可选的,但是一旦你定义了,就必须记得显示调用父类的
__init__方法(如果定义了它的话)。这样更是正确的:无论何时子类想扩展父类的行为,必须在适当的时机,使用适当的参数,显式调用父类方法。
3.类的实例化
在Python中对类进行实例化很直接。要对类进行实例化,只要调用类(就好像它是一个函数),传入定义在__init__方法中的参数。返回值将是新创建的对象。
#------------------------------------------------------------------------------- # coding: utf-8 # Purpose:对象和面向对象 # # Author: zdk # # Created: 20/02/2013 # Copyright: (c) zdk 2013 #------------------------------------------------------------------------------- import fileinfo if __name__ == '__main__': f = fileinfo.FileInfo("D:\编程\python") print(f.__class__) #<class 'fileinfo.FileInfo'> print(f.__doc__) #store file metadata print(f) #{'name': 'D:\\编程\\python'} print(f["name"]) #D:\编程\python
(1)f = fileinfo.FileInfo("D:\编程\python") 创建FileInfo类(定义在fileinfo模块中)的实例,并将新创建的实例赋值给变量f。传入的参数 "D:\编程\python"将作为在FileInfo中__init__方法中的filename参数。
(2)每一个类的实例都有一个内置的属性:__class__,它是对象的类。
(3)你可以像对函数或模块一样来访问实例的doc string。一个类的所有实例共享相同的doc string。
(4) 当创建类实例时你传入的参数被正确发送到__init__方法中,随同一起传递的还有self,它是Python自动添加的。
NOTE:Python中的垃圾回收
当变量超出作用域时,会被自动地回收释放空间。在2.0以前版本采用“引用计数”方法来进行垃圾回收;2.0及以后版本采用了“标记后清除”的方法来进行垃圾回收。
相关推荐
python面向对象精彩讲解视频,详细讲解了python在面向对象中的用途。
《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。, 《Python 3面向对象编程》不是Python 的入门书籍,适合...
Python实验一 面向对象程序设计实验
python面向对象练习题,资料,教育资料
《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。 《Python 3面向对象编程》不是Python 的入门书籍,适合...
《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。, 《Python 3面向对象编程》不是Python 的入门书籍,适合...
《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。 《Python 3面向对象编程》不是Python 的入门书籍,适合具有...
面向对象课件,价值200元,讲的挺详细的,能起到提纲挈领的作用
本文实例讲述了Python面向对象之类和对象。分享给大家供大家参考,具体如下: 类和对象(1) 对象是什么? 对象=属性(静态)+方法(动态); 属性一般是一个个变量;方法是一个个函数; #类的属性 就是 类变量 #...
本文实例讲述了Python面向对象实现一个对象调用另一个对象操作。分享给大家供大家参考,具体如下: 我先总结一下python中的类的特点: 1.类中所有的方法的参数中都必须加self,并且是第一个参数 2.__init__方法用来...
python强大的面向对象能力,让你更好的理解python核心语法
这是2014年度辛星python的面向对象教程,希望大家能够喜欢。
Python 面向对象编程
Python是一种面向对象、解释型的程序设计语言,它已经被成功应用于科学计算、数据分析以及游戏开发等诸多领域。 Python面向对象编程指南深入介绍Python语言的面向对象特性,全书分3个部分共18章。第1部分讲述用特殊...
Python面向对象编程指南深入介绍Python语言的面向对象特性,全书分3个部分共18章。第1部分讲述用特殊方法实现Python风格的类,分别介绍了__init__()方法、与Python无缝集成—基本特殊方法、属性访问和特性及修饰符、...
详细介绍Python中的面向对象,包括类和对象的概念、类的定义、对象的创建、类中的变量、类中的方法、类的继承、对象的拷贝等,知识点与案例相结合,非常适合高校老师教学和学生课后复习使用。
python面向对象思维导图