python 类

来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/04/23 15:12

因为以前学习过c语言,而且python的控制语句和数据结构也不太复杂,所以就先从不太熟悉的类开始记录了。本笔记的内容是基于《python编程:从入门到实践》这本书。


1、创建和使用类

类表示一类东西,比如我们创建一个小狗类,它表示的一切小狗。

它其中包括狗的名字和年龄和两种狗的行为。

创建过程如下:

class Dog():        def _init_(self,name,age):                self.name = name                self.age = age        def sit(self)                print(self.name.title() + "is now sitting"):        def roll_over(self)                print(self.name.title() + "roller over"):


在这里要申明的是,在类中的函数叫做方法。

_init_ 是类中一个特殊的方法,在类中的函数就叫做方法。

在_init_方法中,第一个形参是self,self这个形参的作用是当某个实例被创建时,self会指向具体实例,在我的理解中,self就相当于一个指向实例的指针,有着传递具体实例信息的作用,但要注意的是,self是自动传递的,并不需要我们自己赋值。当我们根据一个类来创建实例时,只需要给出后面的参数就可以了。


self.name 和self.age可以获取形参name和age的值并存储到变量name 和age中去,这两个变量会与实例相关联,像这种可以通过实例访问的变量就叫做属性。


Dog类中还定义了另外两个方法,这两个方法并不需要额外的信息,因此它只有一个形参self指向实例本身。


至于调用属性和调用方法就比较简单了,直接用

实例名.属性调用属性

实例名,方法()来调用方法



2、使用类和实例

先来写一个关于汽车的类

class Car():    def _init_(self,make,model,year):         self.make =  make         self.model = model         self.year = year     self.odometer_reading = 0     def get_descripitive_name(self):         long_name = str(self.year)  +'   '+  self.make + '  ' +  self.model  

我们要修改这个类的属性值有两种方法:

第一、直接修改

实例名.属性名 =  要修改的值

例如:

my_car = Car('audi','a4',2016)my_car.odemeter_reading = 23

第二、通过方法修改

    def _init_(self,make,model,year):         self.make =  make         self.model = model         self.year = year     self.odometer_reading = 0     def get_descripitive_name(self):         long_name = str(self.year)  +'   '+  self.make + '  ' +  self.model  
     def update_odemeter(self,mileage)
         self.odometer_reading = mileage 

然后通过调用方法就可以修改属性的值了。

3、继承

编写类的时候不一定要从空白开始写起,如果要编写的类是一个已经写好的类的子类,可以用继承,它将自动获得父类的所有属性和方法。
创建方法如下:
class ElectricCar(Car):    def _init_(self,make,model,year):        super()._init_(make,model,year)
super()是一个特殊的函数,帮助python将父类和子类关联起来。

当父类的方法不符合子类的行为规范时,可以对其重写,其实在我的理解中就是在子类中定义一个名称相同的方法,那么python将不会考虑父类中的这个方法,而只关注在子类中的这个方法。


写的很不详细,有很多知识懂了,但是没办法表达出来OTZ。。。