python培训之实例化是什么

发布时间:2022-10-25 09:46:01 人气:166 作者:多测师

  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()函数。

python培训之实例化是什么

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

  #!/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类型的面貌存在组成一个对象,这个对象和变量info建立的引用关系。这个过程也可说成这些数据附加到一个实例上。这样就能够以:object.attribute的形式,在程序中任何地方调用某个数据,例如上面的程序中以info.name得到”qiwsir”这个数据。这种调用方式,在类和实例中经常使用,点号“.”后面的称之为类或者实例的属性。

  以上内容为大家介绍了python培训之实例化是什么,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线