知行编程网知行编程网  2022-08-14 02:30 知行编程网 隐藏边栏  29 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python中实例化是什么的相关知识,包括python类初始化函数,以及python实例化是什么意思这些编程知识,希望对大家有参考作用。

python中的实例化是什么

类名通常以大写字母开头。当然,如果你故意不遵守这个约定,也可以,但是以后会给别人阅读,甚至是你自己造成麻烦。由于每个人都走在右边,所以你不必睡在马路中间。

接下来,一般写一个构造函数。在写这个函数之前,先解释一下什么是构造函数。

class Person:
    def __init__(self, name, lang, website):
        self.name = name
        self.lang = lang
        self.website = website

在上面的类中,首先呈现了一个名为:init() 的函数。请注意,此函数以两个下划线开头,然后是 init,最后以两个下划线结束。这是一个函数,就像我们之前学过的函数一样。不过,这个函数有点奇特,它的名字以“__”开头和结尾。

这里请澄清一个基本概念,类是一种对象,就像之前学过的值、字符串、列表等一样。比如这里构造的类名叫做Person,那么我们就在尝试创建一个对象类型,叫做Person,就像对象类型是list一样。

在构建Person类的时候,首先要做的就是初始化这个类型,也就是解释一下这个类型的基本结构。一旦调用了这个类型的对象,首先要做的就是运行这个类型的基本结构。结构,即Person类的基本结构。就像我们每个人一样,我们脑子里都有一个对象类型(对应一个类)比如“人”。一旦遇到张三(张三是一个特定的人),我们首先运行“人”类的基本结构:一个鼻子,两只眼睛,一个鼻子下面的嘴。如果张三符合这个基本结构,我们不会惊讶(不报错),如果张三不符合这个基本结构(比如三只眼睛),我们就会惊讶(报错)。

由于类是我们自己构建的,所以基本结构也是我们自己手动构建的。在一个类中,基本结构写在 init() 函数中。因此,这个函数称为构造函数,负责初始化类的任务。

还是回到Person这个类,如果按照上面的代码,写好了,是不是init()就运行起来了呢?不是!这时候还没有看到张三呢,必须看到张三才能运行。所谓看到张三,看到张三这样一个具体的实实在在的人,此动作,在python中有一个术语,叫做实例化。当类Person实例化后立刻运行init()函数。

上面关于类的讲解很形象生动!

#!/usr/bin/env python
 #coding:utf-8
 
class Person:
     def __init__(self, name, lang, website):
         self.name = name
         self.lang = lang
         self.website = website
 
info = Person("qiwsir","python","qiwsir.github.io")     #实例化Person
 print "info.name=",info.name
 print "info.lang=",info.lang
 print "info.website=",info.website
 
#上面代码的运行结果:
 
info.name= qiwsir
 info.lang= python
 info.website= qiwsir.github.io

在上面的代码中,创建了Person类,构造函数声明了这个类的基本结构:name、lang、website。

注意:info=Person("qiwsir","python","qiwsir.github.io"),这句话实例化了Person类。也就是说,在内存中创建了一个对象。这个对象的类型是 Person 类型。这个 Person 类型是什么样的?就像 init() 构造它一样。实例化时,必须通过参数传入具体数据:name=”qiwsir”, lang=”python”, website=”qiwsir.github.io”。这样,一个对象就存在于内存中。这个对象的类型是Person,然后通过赋值语句与变量info建立引用关系。请回忆一下前面已经描述的变量和对象之间的引用关系。

类和实例

•“类提供默认行为,是实例的工厂”,我觉得这句原话非常经典,一下道破了类和实例的关系。看上面代码,体会一下,是不是这个理?所谓工厂,就是可以用同一个模子做出很多具体的产品。类就是那个模子,实例就是具体的产品。所以,实例是程序处理的实际对象。

•类是由一些语句组成,但是实例,是通过调用类生成,每次调用一个类,就得到这个类的新的实例。

•对于类的:class Person,class是一个可执行的语句。如果执行,就得到了一个类对象,并且将这个类对象赋值给对象名(比如Person)。

self的作用

细心的观察者可能已经注意到,在构造函数中,第一个参数是self,但是在实例化的时候,好像没有这个参数,那么self是做什么的呢?

self是一个很神奇的参数。

在Person实例化的过程中,数据“qiwsir”、“python”、“qiwsir.github.io”已经通过构造函数(init())的参数存储在内存中,这些数据以Person的形式存在type 形成一个对象,并建立此对象与变量 info 的引用关系。该过程也可以说是将数据附加到实例。这样就可以在程序中的任意位置调用某个数据,其形式为:object.attribute,例如上面程序中通过info.name获取数据“qiwsir”。这种调用方式常用于类和实例中,“.”后面的点。被称为类或实例的属性。

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

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