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() #对象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 + "!")
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所共有。