1. 类的概念及定义
初次接触"类"这个概念的时候颇为迷惑,Python编程中的"类"是什么?
Python编程中类的关键字是class,这个class翻译为"类",描述了一个具有一系列具体有公共属性、方法等的通用对象。
类中会涉及一些函数的定义,称之为方法。
__init__()是一个特殊的方法,在使用类定义一个新的实例对象时,会自动初始化运行__init__()方法,自动传入实参self,self是一个指向实例本身的引用,使实例可以访问类中的属性和方法。
示例:
class bot():
def __init__(self, name):
self.name = name
def sing(self):
print(self.name + " is singing.")
def walk(self):
print(self.name + " is walking.")
little_bot = bot("Little")
print("Hello, This is bot " + little_bot.name + ".")
little_bot.sing()
little_bot.name = "BigBot"
print("Hello, This is bot " + little_bot.name + ".")
little_bot.sing()
注:使用实例中类的方法的时候,方法名后要加上括号的,如 little_bot.sing();
查看属性是直接加上属性名的,如 little_bot.name;
实例的属性可以进行修改,如上述所示,将名称从"Little"更改为了“BigBot”
运行结果示例:
?
2. 继承
定义一个新类,仅只是对于可参考引用类的基础上进行修改的话,可以使用继承。
一个类型继承另一个类,将自动获得那个类的所有属性与方法,在其基础上再进行修改或者定义自己的属性和方法。
使用父类中的__init__()的话,可以在自己的__init__()中加上super().__init__(xxx)。
示例:
class bot():
def __init__(self, name):
self.name = name
def sing(self):
print(self.name + " is singing.")
def walk(self):
print(self.name + " is walking.")
class sweepRobot(bot):
def __init__(self, name, model, bornYear):
super().__init__(name) #调用父类中的__init__方法。
self.model = model
self.bornYear = bornYear
def sing(self): #重写父类中的sing方法。
print(self.name + " can not sing. The function is not included.")
def sweep(self): #添加新的方法,sweep方法。
print(self.name + " is sweeping now.")
little_bot = bot("Little")
print("Hello, This is bot " + little_bot.name + ".")
little_bot.sing()
print()
little_bot.name = "BigBot"
print("Hello, This is bot " + little_bot.name + ".")
little_bot.sing()
print()
sRobot = sweepRobot("LargeSweepBot","Large","2023")
print("Hi, this is %s , modle is \"%s\", borned in year %s ." %(sRobot.name,sRobot.model,sRobot.bornYear))
sRobot.sing()
sRobot.sweep()
运行结果示例: