文档详情

Python编程基础(第3版)(微课版)课件 6.2 类.pptx

发布:2025-05-23约1.33千字共14页下载文档
文本预览下载声明

类;;类的定义和函数的定义相似,只是用class关键字替代了def关键字,同样,在执行class的整段代码后,定义的类才会生效。进入类定义部分后,会创建一个新的局部作用域,在后面定义的类中,属性和方法都是属于局部作用域的局部变量。;当使用class关键字创建类时,只要将所需的属性列表和方法列表列出即可,代码如下。;;Python的类的方法和普通的函数有一个很明显的区别,就是类的方法必须有一个额外的参数self,并且在调用方法的时候不必为这个参数赋值。

Python的类的方法的特别参数指代的是对象本身,而按照Python惯例,用self来表示。代码如下。;self参数代表当前对象的地址,能避免非限定调用时找不到访问对象或变量。当调用sleep等函数时,会自动将该对象的地址作为第1个参数传入;如果不传入地址,程序将不知道该访问哪个对象。

self这一名称也不是必需的,在Python中,self不是关键字,可以将其定义成a、b或其他名字。利用my_address代替self,一样不会出现错误,代码如下。;;任何类都有类的专有方法,它们的特殊性从方法名就能看出,其通常使用双下画线“__”开头和结尾。

查看类或对象(实例)的属性和方法,要通过点号操作来实现,即object.attribute,也可以通过点号操作实现对属性的修改和增加。查看类的属性和方法的示例代码如下。;定义类时只使用了pass语句,所以列出的结果都是以双下画线“__”开头和结尾的。

上面代码的运行结果可知,使用dir函数可以查看类的属性和方法。类的常用专有方法如下表。;__getitem__和__setitem__和普通的方法clear()、keys()、values()类似,只是重定向到字典,返回字典的值,通常不用直接调用,可以使用相应的语法让Python来调用__getitem__和__setitem__。

__setitem__方法可以让任何类像字典一样保存键值对。

__getitem__方法可以让任何类表现得像一个序列。

__repr__只有当调用repr(instance)时才会被调用。repr函数是一个内置函数,它用于返回对象的可输出形式字符串。

__cmp__在比较类实例中被调用,通常可以通过使用“==”比较任意两个Python对象,不只是类实例。;__len__在调用len(instance)时被调用。len是Python的内置函数,可以返回一个对象的长度,对于字符串对象,返回的是字符个数;对于字典对象,返回的是键值对的个数;对于列表或序列,返回的是元素的个数。对于类和对象,定义__len__专有方法,可以自定义长度的计算方式,然后调用len(instance),Python则将调用定义的__len__专有方法。

__del__在调用delinstance[key]时被调用,它会从字典中删除单个元素。

__call__方法让一个类表现得像一个函数,可以直接调用一个类实例。

任何定义了__cmp__专有方法的类都可以用“==”进行比较。在类的应用中,最常见的是先将类实例化,再通过实例来执行类的专有方法。;;【任务6-1】创建Car类

显示全部
相似文档