Python 3.7.x 介绍-6类

本文介绍了Python 3.7.x中的类,包括命名和对象、作用域和命名空间、类的定义与实例化、继承、私有变量、以及迭代器和生成器的使用。Python类提供了数据和功能的捆绑方式,支持多继承和方法重载,通过实例变量和方法对象实现了面向对象编程。此外,还讨论了类的作用域规则,强调了在类定义中的命名空间和属性访问。
摘要由CSDN通过智能技术生成

类提供了将数据和功能捆绑在一起的方法。 创建新类会创建一种新类型的对象,从而允许创建该类型的新实例。 每个类实例都可以附加属性以保持其状态。 类实例还可以具有用于修改其状态的方法(由其类定义)。 与其他编程语言相比,Python的类机制添加了具有最少新语法和语义的类。 它是C ++和Modula-3中的类机制的混合体。 Python类提供面向对象编程的所有标准功能与C ++和Modula-3不同,内置类型可以用作用户扩展的基类。 此外,与C ++一样,大多数具有特殊语法(算术运算符,下标等)的内置运算符都可以重新定义为类实例。(重载)

1. 命名和对象

对象具有特性,多个名称(在多个范围内)可以绑定到同一个对象。 这在其他语言中称为别名。

2. Python 作用域(范围)和命名空间

在介绍类之前,我首先要告诉你一些Python的范围规则。类定义对命名空间有一些巧妙的技巧,你需要知道范围和命名空间如何工作才能完全理解处理机制。
命名空间是从名称到对象的映射。大多数名称空间当前都是作为Python Dict字典映射实现的,但这通常不会明示(性能除外),并且可能在将来发生变化。
顺便说一下,我对word后面的任何名称使用word属性 - 例如,在表达式z.real中,real是对象z的属性。
命名空间是在不同时刻创建的,具有不同的生命周期。 包含内置名称的命名空间是在Python解释器启动时创建的,永远不会被删除。 读入模块定义时,将创建模块的全局命名空间.
调用函数时会创建函数的本地名称空间,并在函数返回或引发函数内未处理的异常时删除。
范围是Python程序的文本区域,可直接访问命名空间。
如果名称声明为全局,则所有引用和赋值将直接转到包含模块全局名称的中间作用域。要重新绑定在最内层范围之外找到的变量,可以使用非本地语句;
Python的一个特殊之处在于 - 如果没有全局语句生效 - 对名称的赋值总是进入最内层范围。
全局声明可用于表明特定变量存在于全局范围内,应该在那里调用;非本地语句表明特定变量存在于封闭范围内,应该在那里调用。

例子

def scope_test():
    def do_local():
        spam = "local spam"

    def do_nonlocal():
        nonlocal spam
        spam = "nonlocal spam"

    def do_glob
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值