python进阶——Python类对象与类定义语法
1、类定义语法
最简单的类定义看起来像这样:
class ClassName:
类定义与函数定义 (def 语句) 一样必须被执行才会起作用。 (你可以尝试将类定义放在 if 语句的一个分支或是函数的内部。)
在实践中,类定义内的语句通常都是函数定义,但也允许有其他语句,有时还很有用 --- 我们会稍后再回来说明这个问题。 在类内部的函数定义通常具有一种特别形式的参数列表,这是方法调用的约定规范所指明的 --- 这个问题也将在稍后再说明。
当进入类定义时,将创建一个新的命名空间,并将其用作局部作用域 --- 因此,所有对局部变量的赋值都是在这个新命名空间之内。 特别的,函数定义会绑定到这里的新函数名称。
当(从结尾处)正常离开类定义时,将创建一个 类对象。 这基本上是一个包围在类定义所创建命名空间内容周围的包装器;我们将在下一节了解有关类对象的更多信息。 原始的(在进入类定义之前起作用的)局部作用域将重新生效,类对象将在这里被绑定到类定义头所给出的类名称 (在这个示例中为 ClassName)。
2、类对象
类对象支持两种操作:属性引用和实例化。
属性引用 使用 Python 中所有属性引用所使用的标准语法: obj.name。 有效的属性名称是类对象被创建时存在于类命名空间中的所有名称。 因此,如果类定义是这样的:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
那么 MyClass.i 和 MyClass.f 就是有效的属性引用,将分别返回一个整数和一个函数对象。 类属性也可以被赋值,因此可以通过赋值来更改 MyClass.i 的值。 __doc__ 也是一个有效的属性,将返回所属类的文档字符串: "A simple example class"。
类的 实例化 使用函数表示法。 可以把类对象视为是返回该类的一个新实例的不带参数的函数。 举例来说(假设使用上述的类):
x = MyClass()
创建类的新 实例 并将此对象分配给局部变量 x。
实例化操作(“调用”类对象)会创建一个空对象。 许多类喜欢创建带有特定初始状态的自定义实例。 为此类定义可能包含一个名为 __init__() 的特殊方法,就像这样:
def __init__(self):
self.data = []
当一个类定义了 __init__() 方法时,类的实例化操作会自动为新创建的类实例发起调用 __init__()。 因此在这个示例中,可以通过以下语句获得一个经初始化的新实例:
x = MyClass()
当然,__init__() 方法还可以有额外参数以实现更高灵活性。 在这种情况下,提供给类实例化运算符的参数将被传递给 __init__()。 例如,:
>>>>>> class Complex:
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)
以上就是我们整理的Python类对象与类定义语法,这些代码和理论都可以或多或少的帮助我们了解Python类对象与类定义语法,如果您在练习python的时候又遇到了困难,可以试着回来看看,也许会给你意想不到的结果,环球网校小编在这里祝大家的python学习之路顺利。
最新资讯
- 如何进行python项目配置管理?这才是你最需要的python技术2020-07-17
- 如何用python创建虚拟环境?掌握这些技术你才能真正的进步2020-07-17
- python集合可以用来做什么?原来这些功能才是最实用的2020-07-16
- python单双引号应该如何选择?从此再也不为输出字符担心2020-07-16
- python引包的方法有哪些?这三种方法才是你最需要的2020-07-14
- python获取日期的方法是什么?这个方法才是你需要的2020-07-14
- python互联网协议是什么?掌握这个才算是会用python2020-07-13
- 什么是python质量控制算法?这个算法的操作过程就在这里2020-07-13
- python深拷贝和浅拷贝的区别是什么?这些用法才是我们要关注的2020-07-10
- python面对对象的特性有什么?想学好python就不能忘记这个2020-07-10