Python类的学习

学习来源

创建和使用类

  • 在python中首字母大写的名称指的是类。类的定义中括号是空的。
  • 类中的函数称为方法。
  • 方法_init_()是一个特殊的方法,每次根据类创建新的实例时,python都会自动运行它。这个可以有多个形参,其中self是必须有的,而且在其他形参前面。
  • self是指向实例本身的引用,让实例能够访问类中的属性和方法。
  • 创建实例时,只用给其他的形参提供值。
class Classmate():
	def __init__(self,name,age):
		self.name=name
		self.age=age
	
	def Introduce(self):
		print("My name is "+self.name.title()+", I'm "+str(self.age)+" years old.")
	
	def Teacher(self):
		print(self.name.title()+" ,welcome!")
  • 创建实例
My_classmate=Classmate("Yang",20)
print(My_classmate.name.title())
print(str(My_classmate.age))

输出结果

Yang
20

调用方法

My_classmate.Introduce()
My_classmate.Teacher()

输出结果

My name is Yang, I'm 20 years old.
Yang ,welcome!

使用类和实例

  • 指定属性默认值
class Classmate():
	def __init__(self,name,age):
		self.name=name
		self.age=age
		self.clas=3
	
	def Introduce(self):
		print("My name is "+self.name.title()+", I'm "+str(self.age)+" years old.")
	
	def Teacher(self):
		print(self.name.title()+" ,"+str(self.clas)+" class welcome you!")

My_classmate=Classmate("Yang",20)
My_classmate.Introduce()
My_classmate.Teacher()

输出结果

My name is Yang, I'm 20 years old.
Yang ,3 class welcome you!
  • 直接修改属性的值
My_classmate.clas=1
My_classmate.Introduce()
My_classmate.Teacher()

输出结果

My name is Yang, I'm 20 years old.
Yang ,1 class welcome you!
  • 通过方法修改属性的值
class Classmate():
	def __init__(self,name,age):
		self.name=name
		self.age=age
		
	def Clas(self,c):
		self.clas=c
		
	def Introduce(self):
		print("My name is "+self.name.title()+", I'm "+str(self.age)+" years old.")
	
	def Teacher(self):
		print(self.name.title()+" ,"+str(self.clas)+" class welcome you!")

My_classmate=Classmate("Yang",20)
My_classmate.Clas(3)
My_classmate.Introduce()
My_classmate.Teacher()

输出结果

My name is Yang, I'm 20 years old.
Yang ,3 class welcome you!

继承

  • 定义子类必须在括号内指定父类的名称
  • super()可以将子类和父类关联起来
class Classmate():
	def __init__(self,name,clas):
		self.name=name
		self.clas=clas
		self.age=20
	
	def Up_age(self,age):
		if age>=self.age:
			self.age=age
		else:
			print("you error!!")
		
	def Increase_age(self,age):
		self.age+=age
		
	def Introduce(self):
		print("My name is "+self.name.title()+", I'm "+str(self.age)+" years old.")
	
	def Teacher(self):
		print(self.name.title()+" ,"+str(self.clas)+" class welcome you!")

class Schoolmate(Classmate):
	def __init__(self,name,clas):
		super().__init__(name,clas)

mate=Schoolmate("Yang",3)
mate.Introduce()

输出结果

My name is Yang, I'm 20 years old.
  • 给子类定义属性和方法
class Schoolmate(Classmate):
	def __init__(self,name,clas):
		super().__init__(name,clas)
		self.grade=2017
	
	def Up_grade(self):
		print(self.name+" is a "+str(self.grade)+" student.")

mate=Schoolmate("Yang",3)
mate.Up_grade()

输出结果

Yang is a 2017 student.
  • 重写子类方法
class Schoolmate(Classmate):
	def __init__(self,name,clas):
		super().__init__(name,clas)
		self.grade=2017
	
	def Up_grade(self):
		print(self.name+" is a "+str(self.grade)+" student.")
		
	def Introduce(self):
		print("My name is "+self.name.title()+" , "+str(self.age)+" years old. My university is Tiedao")

mate=Schoolmate("Yang",3)
mate.Up_grade()
mate.Introduce()

输出结果

Yang is a 2017 student.
My name is Yang , 20 years old. My university is Tiedao
  • 将实例作为属性
class Grade():
	def __init__(self,mategrade=2017):
		self.mategrade=mategrade
		
	def Up_grade(self):
		print("I am "+str(self.mategrade)+" student.")
		
class Schoolmate(Classmate):
	def __init__(self,name,clas):
		super().__init__(name,clas)
		self.grade=Grade()
	
	def Introduce(self):
		print("My name is "+self.name.title()+" , "+str(self.age)+" years old. My university is Tiedao")

mate=Schoolmate("Yang",3)
mate.grade.Up_grade()

输出结果

I am 2017 student.

代码下载地址

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值