大家好,今天跟大家简答介绍一下类的基础知识,主要有:
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.属性名来调用了。
再来看方法的调用,普通函数的调用直接调用就可以了,而类中的函数调用之前应该先进行类的实例化——创建一个对象,然后给这个对象的属性赋值,然后才可以调用类中的方法,调用方式是 对象名.方法名()。