下面通过一个例子来学习与记录类的编程
定义一个Dog类,用于描述Dog的通用属性与行为,在此选择两个通用属性/变量:name,age
该类的方法有:sit(),roll_over()
class Dog():
'''
实例:dog类
类属性/变量:name,age
赋予该实例能力(类的通用功能):sit()、roll_over()
'''
def __init__(self,name,age):#方法,形参:self,name,age,通过实参向Dog()传递名字和年龄
self.name=name#以self为前缀的变量可供类中所有方法使用与访问
self.age=age
def sit(self):
print(self.name.title()+" is now sitting.")
def roll_over(self):
print(self.name.title()+" can rolled over!")
将以上类应用于实例:
my_dog=Dog("yellow","two")#实例
访问该实例的属性:
my_dog.name
输出:‘yellow’
my_dog.age
输出:‘two’
调用该实例方法:
my_dog.sit()#调用方法
输出:Yellow is now sitting.
my_dog.roll_over()
输出:Yellow can rolled over!
新建新的类继承以上父类的性质,并在父类基础上增加子类的性质与方法
class Dog_girl(Dog):#继承
def __init__(self,name,age):#继承父类的属性与方法
super().__init__(name,age)#super()将子类与父类联系起来
self.size=10#子类可以定义新的属性
def describe_color(self):
print("the size of "+self.name+" can reach "+str(self.size))
def sit(self):#子类可以定义与父类一样的方法,达到取代的作用
print(self.name.title()+" can sit.")
his_dog=Dog_girl("girl","one")
访问子类新属性:
his_dog.size
输出:10
调用子类新方法:
his_dog.describe_color()
输出:the size of girl can reach 10
his_dog.sit()
输出:Girl can sit.
同时,该子类具备父类的性质与方法:
his_dog.age
输出:one
his_dog.roll_over()
输出:Girl can rolled over!
以前面的例子为例,继续学习如何修改属性的值
比如修改以下实例:
my_dog=Dog("yellow","two")
修改该实例中第一个属性的值,可这样实现:
my_dog.name="red"
再次访问该实例属性,可以发现:
my_dog.name
输出:‘red’
可以在类中增加一个方法专门用于修改该属性的值,则执行步骤是调用该方法后,属性值改变,且是永久性的,如果后面没有需要再修改属性值
class Dog():
'''
实例:dog类
类属性:name,age
赋予该实例能力(类的通用功能):sit()、roll_over()
'''
def __init__(self,name,age):#方法,形参:self,name,age,通过实参向Dog()传递名字和年龄
self.name=name#以self为前缀的变量可供类中所有方法使用与访问
self.age=age
def sit(self):
print(self.name.title()+" is now sitting.")
def roll_over(self):
print(self.name.title()+" rolled over!")
def update_name(self,new_name):
self.name=new_name
在该类中增加了一个update_name()的方法,下面通过该方法修改属性name
my_dog.update_name("blue")
修改后检查属性的值是否已经修改:
my_dog.name
输出:‘blue’