Python学习——初识类与对象

  大家好,今天跟大家简答介绍一下类的基础知识,主要有:

  Python中类和对象的概念

  Python中的函数和普通函数的对比

  python类语法的初识

  一、Python中类和对象的概念

  我们把一类相同的事物叫做类,其中用相同的属性(其实就是变量)描述,里面封装了相同的方法。比如,汽车是一个类,它包括价格、品牌等属性。倘若要实现打印100种车的属性的功能,那么可以用函数实现,也可以用类来实现。

  #####函数实现

  def CarInfo(type,price):

  print ("the car's type %s,price:%d"%(type,price))

  CarInfo('passat',250000)

  CarInfo('ford',280000)

  ######类实现

  class Car:

  def __init__(self,type,price):

  self.type = type

  self.price = price

  def printCarInfo(self):

  print ("the car's Info in class:type %s,price:%d"%(self.type,self.price))

  passat = Car('passat',250000)

  ford = Car('ford',250000)

  passat.printCarInfo()

  ford.printCarInfo()

  这说明了什么呢?其实类能实现的功能,函数几乎都可以实现,我们都知道C语言中也是没有对象的,但是它还是很腻害的写出了linux操作系统!!!知道了这一点,我们就知道,类是让我们的程序锦上添花的产物,并没那么可怕。

  现在来先认识一下类:

  上述例子中,“Car”就是“类”,表示“车”这一类事物,它有很多属性,比如型号、价格等等。而passat和ford都是车的一种,它是具体的,有固定的品牌和价格,然而等号左边的passat是car的一个对象,ford是car的另一个对象。

  二、Python中的函数和普通函数的对比

  类中的函数称之为方法。郑州治疗妇科的医院 http://www.120kdfk.com/

  从上述例子中,类能实现的功能我们用函数也完全可以实现,但是我们可以看到他们的实现方式是不同的,现在我们就逐一对比一下。先上图!

  两者的差别在哪呢?

  1.我们看到两个方法的缩进不同,printCarInfo这个方法是被包裹在car这个类里面的

  2.两个函数的参数是不同的,CarInfo方法很直接的传了cartype和price这两个参数,而在printCarInfo方法中只传递了一个self。这也直接导致了后面在函数中使用变量的时候也是不同的。

  三、python类语法的初识

  使用类中的方法

  CarInfo中的方法我们都知道是什么了,那么printCarInfo里面传递的这个‘self’是个什么呢?

  在这个方法的定义中,形参self必不可少,还必须位于其他形参的前面。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。当我们使用passat这个对象去调用printCarInfo这个方法的时候,其实是做了这样一部操作printCarInfo(passat),把passat这个对象传给了printCarInfo方法,passat这个对象又包含了两个属性cartype、price,我们在python规定这样使用一个对象中的变量:passat.cartype、passat.price。我们调用函数时传的passat对象的参数passat.cartype、passat.price被类中printCarInfo函数以self的身份接收,所以我们在使用参数的时候自然就变成了self.cartype、self.price。

  类的初始化

  passat = Car('passat',250000)

  ford = Car('ford',250000)

  其实这两句话每句话都完成了两个功能:第一,从car类中实例化出了一个对象——passat/ford;第二:给新对象的属性赋了值。其实passat = Car(‘passat’,25000)还可以写成这样:

  类中方法的定义和使用

  从图中很明显就可以看出,CarInfo中的参数在printCarInfo方法中的换成了self,在方法的调用中,就是用self.属性名来调用了。

  再来看方法的调用,普通函数的调用直接调用就可以了,而类中的函数调用之前应该先进行类的实例化——创建一个对象,然后给这个对象的属性赋值,然后才可以调用类中的方法,调用方式是 对象名.方法名()。

posted @ 2020-03-04 14:54  tiana_Z  阅读(187)  评论(0编辑  收藏  举报