最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python面向对象编程详解

    正文概述    2020-02-07   189

    python面向对象编程详解

    类是面向对象程序设计的一部分。面向对象程序设计或者简称为 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面向对象编程详解

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元