• 技术文章 >Python技术 >Python基础教程

    python面向对象编程详解

    silencementsilencement2019-06-28 13:13:04原创2764

    类是面向对象程序设计的一部分。面向对象程序设计或者简称为 OOP 致力于创建可重用代码块称之为类。当你想在你的程序中使用类时,你会从类中创建一个对象,这也是面向对象一词的由来。Python 并不总是面向对象的,但是你会在你的项目中用到对象。为了理解类,你需要理解面向对象的一些基础术语。

    常用术语

    class:类。类是代码块的主体,其中定义了建立的模型的属性和行为。这个模型可以来自于真实世界,也可以是虚拟游戏等。

    attribute:属性。是一系列信息的集合。在类中,一个属性通常是一个变量。

    behavior:行为。行为是定义在类中,组成方法的部分。也即是定义在类中函数的一部分。

    method:方法。类中的函数,由 behavior 组成。

    object:对象。对象是类的实例。一个对象中包含所有类中属性的值。你可以为一个类创建任意数量的对象。

    近距离观察 Rocket 类

    我们已经了解到一些类的基本术语,让我们回头再分析一下上节提到的 Rocket 类。

    __init__() 方法

    定义一个初始代码块,如下所示:

    class Rocket():
        # Rocket simulates a rocket ship for a game,
        #  or a physics simulation.
        
        def __init__(self):
            # Each rocket has an (x,y) position.
            self.x = 0
            self.y = 0

    第一行展示了类是如何创建的。关键字 class 告诉 Python 准备定义一个类。类名的命名规则和变量的相同,但是 Python 中有一个约定好的规则,类名必须是驼峰式的。也即每个单词的开头必须是大写的,不允许下划线的出现。类名后紧跟一对圆括号,目前为止圆括号里都是空的,接下来的学习中,其中可能会包含一个类。这个类是新类基于的类。

    前后都有两个下划线的函数是内置在 Python 中的有特殊用途的函数。__init__() 函数就是一个特殊的函数。当创建一个类的对象时,它会自动执行。我们可以称之为初始化函数,在对象使用之前初始化一些必要的属性。在这个例子中,__init__() 函数初始化了 x 和 y 属性。

    关键字 self 可能会有些难以理解。单词 "self" 指向当前的对象。当你创建一个类时,它可以访问到类中的任意指定属性。基本上,类中所有的函数都需要 self 对象作为第一个参数,因此它们就可以访问类中的属性。

    现在,让我们看看类中的方法吧!

    一个简单的方法

    下述代码在 Rocket 类中定义了一个方法。

    class Rocket():
        # Rocket simulates a rocket ship for a game,
        #  or a physics simulation.
        
        def __init__(self):
            # Each rocket has an (x,y) position.
            self.x = 0
            self.y = 0
            
        def move_up(self):
            # Increment the y-position of the rocket.
            self.y += 1

    方法就是类中的函数。因此你可以在方法中做任何函数能做的事。

    默认情况下,每个函数都需要接受一个参数:self 。它是对调用这个方法的对象的引用。self 参数能让你访问到调用对象的属性。在这个例子中,self 用来访问 Rocket 对象的 y 属性。这个方法被调用一次,对象的 y 属性就增加1。为了更近一步了解方法的运行过程,仔细阅读下述代码,并观察它们的输出。

    class Rocket():
        # Rocket simulates a rocket ship for a game,
        #  or a physics simulation.
        
        def __init__(self):
            # Each rocket has an (x,y) position.
            self.x = 0
            self.y = 0
            
        def move_up(self):
            # Increment the y-position of the rocket.
            self.y += 1
    
    # Create a Rocket object, and have it start to move up.
    my_rocket = Rocket()
    print("Rocket altitude:", my_rocket.y)
    
    my_rocket.move_up()
    print("Rocket altitude:", my_rocket.y)

    创建多个对象

    面向对象编程一个重要目标是创建可重用代码。一旦你写好了类,就能创建任意数量的对象。通常,类被放进一个单独的文件中,在需要的时候导入程序中。因此你可以创建一个类库,在不同的程序中重复使用这些类。

    在一个类上创建多个对象,示例如下:

    class  Rocket():
             # Rocket simulates a rocket ship for a game,# Rocket 
        #  or a physics simulation.
        
        def __init__(self):
            # Each rocket has an (x,y) position.
            self.x = 0
            self.y = 0
            
        def move_up(self):
            # Increment the y-position of the rocket.
            self.y += 1
            
    # Create a fleet of 5 rockets, and store them in a list.
    my_rockets = []
    for x in range(0,5):
        new_rocket = Rocket()
        my_rockets.append(new_rocket)
    
    # Show that each rocket is a separate object.
    for rocket in my_rockets:
        print(rocket)
    专题推荐:面向对象
    上一篇:初识python中的类 下一篇:Python中的字符串是什么

    相关文章推荐

    • Python新手常见问题七:循环加载模块• Python如何输出和输入• Python中的位运算符有哪些

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网