版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类1绑定self参数目录定义和使用类2类的专有方法3【任务6-1】创建Car类4类的定义和函数的定义相似,只是用class关键字替代了def关键字,同样,在执行class的整段代码后,定义的类才会生效。进入类定义部分后,会创建一个新的局部作用域,在后面定义的类中,属性和方法都是属于局部作用域的局部变量。类的定义、类的使用定义类的格式如下。class类名:
属性列表
方法列表当使用class关键字创建类时,只要将所需的属性列表和方法列表列出即可,代码如下。类的使用>>>classCat:...'''一次模拟猫咪的简单尝试'''...#属性...name='tesila'...age=3...#方法...defsleep(self):...'''模拟猫咪被命令睡觉'''...return'%d岁的%s正在沙发上睡懒觉。'%(self.age,)...defeat(self,food):...'''模拟猫咪被命令吃东西'''...self.food=food...return'%d岁的%s在吃%s。'%(self.age,,self.food)1绑定self参数目录定义和使用类2类的专有方法3【任务6-1】创建Car类4Python的类的方法和普通的函数有一个很明显的区别,就是类的方法必须有一个额外的参数self,并且在调用方法的时候不必为这个参数赋值。Python的类的方法的特别参数指代的是对象本身,而按照Python惯例,用self来表示。代码如下。绑定self参数>>>classCat:...defsleep(self):...print(self)>>>new_cat=Cat()>>>new_cat.sleep()<__main__.Catobjectat0x000002794232A690>self参数代表当前对象的地址,能避免非限定调用时找不到访问对象或变量。当调用sleep等函数时,会自动将该对象的地址作为第1个参数传入;如果不传入地址,程序将不知道该访问哪个对象。self这一名称也不是必需的,在Python中,self不是关键字,可以将其定义成a、b或其他名字。利用my_address代替self,一样不会出现错误,代码如下。绑定self参数>>>classTest:...defprt(my_address):...print(my_address)...print(my_address.__class__)>>>t=Test()>>>t.prt()<__main__.Testobjectat0x000002794232AF90><class'__main__.Test'>1绑定self参数目录定义和使用类2类的专有方法3【任务6-1】创建Car类4任何类都有类的专有方法,它们的特殊性从方法名就能看出,其通常使用双下画线“__”开头和结尾。查看类或对象(实例)的属性和方法,要通过点号操作来实现,即object.attribute,也可以通过点号操作实现对属性的修改和增加。查看类的属性和方法的示例代码如下。类的专有方法>>>classExample:...pass>>>example=Example()>>>print(dir(example))['__class__','__delattr__','__dict__','__dir__','__doc__','__eq__','__format__','__ge__','__getattribute__','__getstate__','__gt__','__hash__','__init__','__init_subclass__','__le__','__lt__','__module__','__ne__','__new__','__reduce__','__reduce_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','__weakref__']定义类时只使用了pass语句,所以列出的结果都是以双下画线“__”开头和结尾的。上面代码的运行结果可知,使用dir函数可以查看类的属性和方法。类的常用专有方法如下表。类的专有方法专有方法功
能专有方法功
能__init__构造方法,生成对象时被调用__call__函数调用__del__析构方法,释放对象时被调用__add__加运算__repr__输出类的实例化对象__sub__减运算__setitem__按照索引赋值__mul__乘运算__getitem__按照索引获取值__div__除运算__len__获得长度__mod__求余运算__cmp__比较运算__pow__幂运算__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__专有方法的类都可以用“==”进行比较。在类的应用中,最常见的是先将类实例化,再通过实例来执行类的专有方法。类的专有方法1绑定self参数目录定义和使用类2类的专有方法3【任务6-1】创建Car类4【任务6-1】创建Car类任务分析任务描述创建一个Car类,代表一辆汽车,具有车轮数(4)和颜色(red)的属性,以及两个函数:getCarInfo和run。通过实例化Car类并调用其方法,可以看到汽车的基本信息和行驶状态。(1)使用class语句创建Car类,添加车轮数和颜色两个属性。(2)使用def
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建宁德市福安市盛泰汽车管理有限公司招聘驾驶员人员笔试历年参考题库附带答案详解
- 2025江苏盐城市滨海县农旅集团有限公司招聘拟聘用人员笔试历年参考题库附带答案详解
- 2025四川成都交易集团有限公司招聘综合文秘岗等岗位(第三批次社会招聘)拟聘人员笔试历年参考题库附带答案详解
- 货物跟踪异常处理机制方案
- 2026年神农架林区公共检验检测中心专项公开招聘工作人员备考题库含答案详解ab卷
- 2026天津公交安盈企业管理有限公司社会选聘场站公司总经理的1人备考题库及答案详解(典优)
- 2026年上半年四川广安市岳池县“小平故里英才计划”引进急需紧缺专业人才6人备考题库(含答案详解)
- 2026上半年广东茂名市高州市医疗保障事业管理中心选聘3人备考题库附答案详解(培优a卷)
- 2026第十四届贵州人才博览会贵州医科大学附属口腔医院引进高层次人才5人备考题库含答案详解
- 2026江西吉安市新庐陵投资发展有限公司招聘见习人员2人备考题库附答案详解(考试直接用)
- 早产临床路径完整版
- 2026年浙江杭州市高三二模高考物理试卷试题(含答案详解)
- 浙江省湖州、衢州、丽水三地市2026届高三下学期4月二模英语试题
- 2025浙江丽水缙云县国有企业招聘笔试及人员笔试历年参考题库附带答案详解
- 2026年青马班考核测试卷附完整答案详解【夺冠】
- 2025年浙江杭州余杭区卫生健康系统面向普通高校择优招聘应届毕业生86名笔试历年典型考题及考点剖析附带答案详解试卷2套
- GB/T 4937.10-2025半导体器件机械和气候试验方法第10部分:机械冲击器件和组件
- 卫生院落实一岗双责制度
- 模架厂品质制度规范
- 门店拉新方案
- 英语图表类作文课件
评论
0/150
提交评论