电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

python开发之‘类’VIP免费

python开发之‘类’_第1页
1/15
python开发之‘类’_第2页
2/15
python开发之‘类’_第3页
3/15
Classes 类¶ Python 在尽可能不增加新的语法和语义的情况下加入了类机制。这种机制是 C++ 和 Modula-3 的混合。 Python 中的类没有在用户和定义之间建立一个绝对的屏障,而是依赖于用户自觉的不去“破坏定义” 。然而, 类机制最重要的功能都完整的保留下来:类继承机制允许多继承,派生类可以覆盖(override)基类中的任 何方法,方法中可以调用基类中的同名方法。对象可以包含任意数量的私有成员。 用 C++ 术语来讲,所有的类成员(包括数据成员)都是*公有*(参见 Priv ate Variables 私有变量 )的,所有 的成员函数都是*虚*( virtual )的。没有特定的构造和析构函数。像 Modula-3 一样,在成员方法中没 有什么简便的方式可以引用对象的成员:方法函数在定义时需要以引用的对象做为第一个参数,调用时则会隐式 引用对象。像 Smalltalk 一样,类本身就是对象,在更为广义的范围上理解: Python 中一切数据类型都 是对象。这样就形成了语义上的引入和重命名。但是,像 C++ 而非 Modula-3 中那样,大多数带有特殊语 法的内置操作符(算法运算符、下标等)都可以针对类的需要重新定义。 A Word About Terminology 术语漫谈¶ 由于没有什么关于类的通用术语,我从 Smalltalk 和 C++ 中借用一些(我更希望用 Modula-3 的,因 为它的面向对象机制比 C++更接近 Python,不过我想没多少读者听说过它)。 对象是被特化的,多个名字(在多个作用域中)可以绑定同一个对象。这相当于其它语言中的别名。通常对 Python 的第一印象中会忽略这一点,使用那些不可变的基本类型(数值、字符串、元组)时也可以很放心 的忽视它。然而,在 Python 代码调用字典、链表之类可变对象,以及大多数涉及程序外部实体(文件、 窗体等等)的类型时,这一语义就会有影响。这通用有助于优化程序,因为别名的行为在某些方面类似于指 针。例如,很容易传递一个对象,因为在行为上只是传递了一个指针。如果函数修改了一个通过参数传递的 对象,调用者可以接收到变化--在 Pascal 中这需要两个不同的参数传递机制。 Python Scopes and Name Spaces 作用域和命名空间¶ 在介绍类之前,我首先介绍一些有关 Python 作用域的规则:类的定义非常巧妙的运用了命名空间,要 完全理解接下来的知识,需要先理解作用域和命名空间的工作原理。另外,这一切的知识对于任何高级 Python 程序员都非常有用。 Le...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

python开发之‘类’

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部