Python很火,部分是因为它是完全“面向对象”的语言。
关键词class指称一个类,然后是类名,如果有继承的基类,通过小括号包含起来;还有就是缩进来表示类模块。如:
class FileInfo(UserDict):
"store file metadata"
def __init__(self, filename=None):
UserDict.__init__(self)
self["name"] = filename
FileInfo这个类继承自UserDict,并且自身包含__init__方法,和doc属性。属于类的方法不同于一般方法,它的第一个参数一般是self,指明这个方法绑定到这个类的对象的。在调用时,忽略self参数,只需提供其他参数即可。
当通过定义的类创建对象时,需要调用类名就可以了。如:
>>> import fileinfo
>>> f = fileinfo.FileInfo("/music/_singles/kairo.mp3")
>>> f.__class__
<class fileinfo.FileInfo at 010EC204>
>>> f.__doc__
'store file metadata'
>>> f
{'name': '/music/_singles/kairo.mp3'}
FileInfo定义在模块fileinfo中,import进来后,通过模块名称访问定义的类FileInfo,在import 机制中说过的。FileInfo对象f,传入的参数"/music/_singles/kairo.mp3"会传递给__init__方法,然后生成了dict对象,{'name': '/music/_singles/kairo.mp3'}