自学Python5.3-类和对象的简单操作

时间:2021-01-07 20:08:54

自学Python之路

自学Python5.3-类和对象的简单操作

1. 定义一个类

定义一个类的格式如下:

class 类名:
方法列表

 举例1 : 

class Cat:    #定义一个Cat类
#属性
#方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫正在喝kele.....")

 举例2:

class Car:  # 定义一个Car类
# 属性
# 方法
def getCarInfo(self):
print('车*个数:%d, 颜色%s'%(self.wheelNum, self.color)) # 稍后介绍
def move(self):
print("车正在移动...")

说明:

  • 定义类时有2种:新式类和经典类,上面的Car为经典类,如果是Car(object)则为新式类
  • 类名 的命名规则按照"大驼峰"

2. 创建对象

类不会自动执行,于是需要创建对象。

创建对象的格式为:

  对象名 = 类()  

 举例1:

class Cat:
#属性
#方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫正在喝kele.....")
#创建一个对象
tom = Cat()

 举例2:

class Car:  # 定义一个Car类
# 属性
# 方法
def getCarInfo(self):
print('车*个数:%d, 颜色%s'%(self.wheelNum, self.color)) # 稍后介绍
def move(self):
print("车正在移动...")
#创建一个对象
BWM = Car()

3. 调用对象的方法

  举例1 :

class Cat:
#属性
#方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫正在喝kele.....")
#创建一个对象
tom = Cat()
#调用tom指向的对象中的方法
tom.eat()
tom.drink()

自学Python5.3-类和对象的简单操作

4. 获取对象添加属性

  举例1 :

class Cat:
#属性
#方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫正在喝kele.....")
#创建一个对象
tom = Cat()
#调用tom指向的对象中的方法
tom.eat()
tom.drink()
# 给tom指向的对象添加两个属性
tom.name = “汤姆”
tom.age = 40
print("%的年龄是:%d"%(tom.name,tom.age))

  

class Cat:
#属性
#方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫正在喝kele.....")
def introduce(self):
print("%的年龄是:%d"%(tom.name,tom.age))
#创建一个对象
tom = Cat()
#调用tom指向的对象中的方法
tom.eat()
tom.drink()
# 给tom指向的对象添加两个属性
tom.name = “汤姆”
tom.age = 40
#获取属性
tom.introduce()

5. 创建多个对象

class Cat:
#属性
#方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫正在喝kele.....")
def introduce(self):
print("%的年龄是:%d"%(tom.name,tom.age))
#创建一个对象
tom = Cat()
#调用tom指向的对象中的方法
tom.eat()
tom.drink()
# 给tom指向的对象添加两个属性
tom.name = “汤姆”
tom.age = 40
#获取属性
tom.introduce()
#创建另一个对象
lanmao = Cat()
#调用lanmao指向的对象中的方法
lanmao.eat()
lanmao.drink()
# 给lanmao指向的对象添加两个属性
lanmao.name = “蓝猫”
lanmao.age = 12
#获取属性
tom.introduce()
lanmao.introduce()  

  这样的结果肯定不对,那是因为lanmao.introduce()调用内存的时候对应的是print("%的年龄是:%d"%(tom.name,tom.age)) ,那么如何解决此问题???

class Cat:
#属性
#方法
def eat(self):
print("猫在吃鱼....")
def drink(self):
print("猫正在喝kele.....")
def introduce(self):
print("%的年龄是:%d"%(self.name,self.age))
#创建一个对象
tom = Cat()
#调用tom指向的对象中的方法
tom.eat()
tom.drink()
# 给tom指向的对象添加两个属性
tom.name = “汤姆”
tom.age = 40
#获取属性
tom.introduce()
#创建另一个对象
lanmao = Cat()
#调用lanmao指向的对象中的方法
lanmao.eat()
lanmao.drink()
# 给lanmao指向的对象添加两个属性
lanmao.name = “蓝猫”
lanmao.age = 12
#获取属性
tom.introduce()
lanmao.introduce()  

self总结:

  • 所谓的self,可以理解为自己
  • self就相当于一个变量, 可以换成任何一个字符
  • 可以把self当做C++中类里面的this指针一样理解,就是对象自身的意思
  • 某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可

......