知行编程网知行编程网  2022-12-06 14:00 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python3 面向对象的相关知识,包括python面向对象反射,以及python面向对象例子这些编程知识,希望对大家有参考作用。

Python3 面向对象


面向对象技术简介

类(Class):用来描述具有相同属性和方法的对象的集合。它定义集合中每个对象共有的属性和方法。对象是类的实例。

类变量:类变量在实例化对象中是通用的。类变量在类内和函数体外定义。类变量一般不作为实例变量使用。

数据成员:类变量或实例变量用于处理与类及其实例对象相关的数据。

方法重写:如果从父类继承的方法不能满足子类的需要,可以重写。这个过程称为方法覆盖,也称为方法重写。

局部变量:方法中定义的变量只适用于当前实例的类。

实例变量:在类的声明中,属性由变量表示。此类变量称为实例变量,在类声明内部但在类的其他成员方法之外声明。

继承:即派生类(derived class)继承了基类(base class)的字段和方法。继承还允许派生类的对象被视为基类的对象。比如有这样一种设计:从Animal类派生出一个Dog类型的对象,它模拟了“is-a”关系(比如Dog是Animal)。

实例化:创建一个类的实例,类的具体对象。

方法:类中定义的函数。

对象:由类定义的数据结构的实例。对象由两个数据成员(类变量和实例变量)和方法组成。

与其他编程语言相比,Python 增加了一种类机制,而尽可能不增加新的语法和语义。

Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许有多个基类,派生类可以覆盖基类中的任意方法,方法可以调用基类中的同名方法。

对象可以包含任意数量和类型的数据。


类定义

语法格式如下:

class ClassName:
    <statement-1>
    .
    .
    .
    <statement-N>

一个类被实例化之后,就可以使用它的属性了,其实就是在一个类被创建之后,可以通过类名来访问它的属性。


类对象

类对象支持两种操作:属性引用和实例化。

属性引用使用与 Python 中所有属性引用相同的标准语法:obj.name。

创建类对象后,类命名空间中的所有名称都是有效的属性名称。所以如果类定义是这样的:

#!/usr/bin/python3
class MyClass:
    """一个简单的类实例"""
    i = 12345
    def f(self):
        return 'hello world'
# 实例化类
x = MyClass()
# 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i)
print("MyClass 类的方法 f 输出为:", x.f())

实例化类:

# 实例化类
x = MyClass()
# 访问类的属性和方法

上面创建了一个新的类实例并将该对象赋值给局部变量 x,其中 x 是一个空对象。

执行以上程序输出结果为:

MyClass 类的属性 i 为: 12345
MyClass 类的方法 f 输出为: hello world

许多类倾向于创建具有初始状态的对象。因此,一个类可能会定义一个名为 __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)

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享