Python是面向对象的程序设计语言。其中有一些基本的概念,比方类、属性、方法。

对象:研究的事物

属性:数据元素

方法:操作

类:具有共同本质特性的事物

实例:类所定义的对象的具体体现

实例化:类定义的基础上构造对象(实例)的过程

 

以汽车为例:

类名:Car

属性:汽车型号、车牌等

方法:前进、后退等

 

1. 类的定义

class类名:

[类变量名= 初始值]                     #定义一个类对象

[def 方法名(self,参数):        #定义类变量(属性)

方法体]                       #定义类方法

 

说明:

(1)class后面接的是一个类名,随后定义类的类体代码

(2)类属性用类中的数据成员(变量)来描述

(3)类中的方法类似函数,但是第一个参数一般为self,它在所有方法声明中都存在,代表实例(对象)本身,当用实例调用方法时,不需要将self传递进来

(4)具体对象通过类的实例化获得,格式为:

对象 = 类名([参数])

对象创建后,可以获得属性,格式为:对象.属性名,并可以调用方法,格式为:对象.方法名([参数])

 

example 1:

class Dog:                      #定义Dog类
    def bark(self):             #定义方法bark()
        print("汪!汪!") 
 
dog1 = Dog()                    #创建对象dog1
dog1.bark()
运行结果:

 

example 2:    

class Dog:                                         #定义Dog类
    def bark(self,xm):                             #定义方法bark()
        self.name = xm                             #将xm(姓名)赋值给对象属性name
        print("汪!汪!我是" + self.name + "!")     
 
dog1 = Dog()                                       #创建对象dog1
dog1.bark("阿黄")                                  #对象dog1调用方法bark()


 


运行结果:

汪!汪!汪!我是阿黄!

 

2. 类的方法

__init__() 用于对象的初始化,该方法在类被实例化时立即执行

 

example 3:

class Dog:
    def __init__(self,name,color):
        self.name = name
        self.color = color
    def bark(self):
        print("汪!汪!我是" + self.name + "!")
        print("汪!汪!我是" + self.name + "!")


dog1 = Dog("阿黄", "黄色")
print("刚才创建了一个狗的对象,该条狗的名字叫: "dog1.name + "颜色为: "+dog1.color)
dog1.bark()


 


运行结果:

刚才创建了一个狗的对象,该条狗的名字叫:阿黄  颜色为:黄色

汪!汪!我是阿黄!
 

3. 类变量和对象(实例)变量

    Python面向对象语言中,有两种变量类型——类变量和对象(实例)变量,它们根据所有者是类还是对象而区分开来。类对象可以共享——可以被实例使用,而实例的变量只能被自己的对象所拥有。

example4:

class Dog:
    number = 0
    def __init__(self,name):
        self.name = name
        Dog.number = Dog.number + 1
    def bark(self):
        print("汪!汪!我是"+ self.name + "!")
        print("现在有 %d 条狗!" % Dog.number)


dog1 = Dog("阿黄")
dog1.bark()
dog2 = Dog("阿美")
dog2.bark()
dog1.bark()

运行结果:

汪!汪!我是阿黄!
现在有 1 条狗!
汪!汪!我是阿美!
现在有 2 条狗!
汪!汪!我是阿黄!
现在有 2 条狗!

对象dog1的实例变量name为dog1自己所有,初始化后name的值为“阿黄”,和对象dog2的实例变量不相关,而类变量number为dog1和dog2所共有。