1亿高质量文档大特价,1折起啦~

Python面向对象程序设计.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1.4 私有成员与公有成员 另外,在IDLE交互模式下,一个下划线“_”表示解释器中最后一次显示的内容或最后一次语句正确执行的输出结果。例如: >>> 3 + 5 8 >>> _ + 2 10 >>> _ * 3 30 >>> _ / 5 6 >>> 3 3 >>> 1/0 Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by zero >>> _ 3 6.1.4 私有成员与公有成员 >>> class Fruit: def __init__(self): self.__color = 'Red' self.price = 1 >>> apple = Fruit() >>> apple.price #显示对象公开数据成员的值 1 >>> apple.price = 2 #修改对象公开数据成员的值 >>> apple.price 2 >>> print(apple.price, apple._Fruit__color) #显示对象私有数据成员的值 2 Red >>> apple._Fruit__color = "Blue" #修改对象私有数据成员的值 >>> print(apple.price, apple._Fruit__color) 2 Blue >>> print(apple.__color) #不能直接访问对象的私有数据成员,出错 AttributeError: Fruit instance has no attribute '__color' 6.2 方法 在类中定义的方法可以粗略分为四大类:公有方法、私有方法、静态方法和类方法。其中,公有方法、私有方法都属于对象,私有方法的名字以两个下划线“__”开始,每个对象都有自己的公有方法和私有方法,在这两类方法中可以访问属于类和对象的成员;公有方法通过对象名直接调用,私有方法不能通过对象名直接调用,只能在属于对象的方法中通过“self”调用或在外部通过Python支持的特殊方式来调用。如果通过类名来调用属于对象的公有方法,需要显式为该方法的“self”参数传递一个对象名,用来明确指定访问哪个对象的数据成员。静态方法和类方法都可以通过类名和对象名调用,但不能直接访问属于对象的成员,只能访问属于类的成员。一般将“cls”作为类方法的第一个参数名称,但也可以使用其他的名字作为参数,并且在调用类方法时不需要为该参数传递值。 6.2 方法 6.2 方法 >>> r = Root(3) >>> r.classShowTotal() #通过对象来调用类方法 1 >>> r.staticShowTotal() #通过对象来调用静态方法 1 >>> r.show() self.__value: 3 Root.__total: 1 >>> rr = Root(5) >>> Root.classShowTotal() #通过类名调用类方法 2 >>> Root.staticShowTotal() #通过类名调用静态方法 2 6.2 方法 >>> Root.show() #试图通过类名直接调用实例方法,失败 TypeError: unbound method show() must be called with Root instance as first argument (got nothing instead) >>> Root.show(r) #但是可以通过这种方法来调用方法并访问实例成员 self.__value: 3 Root.__total: 2 >>> r.show() self.__value: 3 Root.__total: 2 >>> Root.show(rr) #通过类名调用实例方法时为self参数显式传递对象名 self.__value: 5 Root.__total: 2 >>> rr.show() self.__value: 5 Root.__total: 2 6.3 属性 Python 2.x和Python 3.x对属性的实现和处理方式不一样,内部实现有较大的差异,使用时应注意二者之间的区别。 6.3.2 Python 3.x中的属性 在Python 3.x中,属性得到了较为完整的实现,支持更加全面的保护机制。例如下面的代码所示,如果设置属性为只读,则无法修改其值,也无法为对象增加与属性同名的新成员,同时,也无法删除对象属性。 6.3.2 Python 3.x中的属性 >>> clas

文档评论(0)

cjp823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档

相关课程推荐