python的类和对象

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所共有。




原文地址:https://www.cnblogs.com/mtcnn/p/9411655.html