Python基础教程:类Class


前言

  本章将讲解一下python的类以及类的实例化、继承、等等方法,如若有解释不好的地方,欢迎大家指正

一、类和实例?

1.类的定义

  类,想必了解过C++、JAVA的码友们都知道,python中的类也是使用关键字class进行定义的,下面是其基本的语法格式:
class 类名:
	多个类属性...
	多个类方法...

代码如下(示例):

class Student: #定义一个学生类
	name = "LiMing"    #类属性
	def printName(self,): #类方法
		print ('该学生名字是:',self.name) 
print(Student.name) #使用类对象的属性 
s = Student()  # 实例化对象
s.printName()
s.name = "ZhangSan" #实例化对象改变name的信息

2.类的调用

  class语句执行后,类对象即被创建,便可进一步使用类对象来访问类的属性、创建实例对象。类的方法通常不能通过类对象直接调用,因为方法的第一个参数为self,它代表实例对象,只能通过实例对象来调用方法
注意:类的方法函数的第一个参数默认为self,表示引用方法的对象实例。在方法中对self的属性赋值才会创建属于实例对象的属性。

3.构造函数及析构函数:

  构造函数在调用类创建实例对象时自动被调用,完成对实例对象的初始化。析构函数在实例对象被回收时调用。在定义类时,可以不定义构造函数和析构函数。。Python 类中,手动添加构造方法以及析构方法的语法格式如下:

# 构造函数
def __init__(slef,...):
	代码块
# 析构函数
def __del__(slef,...):
	代码块

注:此方法的方法名中,开头和结尾各有 2 个下划线,且中间不能有空格。

二、继承和多态

1.继承

  Python 中子类会继承父类所有的类属性和类方法。
代码如下:

# 代码改进前:
class Animal: #定义一个动物类
	def __init__(self,name):
		self.name = name
	def greet(self):
		print("Hello,I am an %s."%self.name)
class Dog():
		def __init__(self,name):
			self.name = name
		def greet(self):
			print("WangWang......,I am an %s."%self.name)
animal = Animal('animal')
animal.greet()
dog = Dog("dog")
dog.greet()	

改进后的代码如下:

# 代码改进后:
class Dog(Animal):
	def greet(self):
		print("WangWang......,I am an %s."%self.name)
dog = Dog("dog")
dog.greet()	

  通过两段代码的对比,可以发现定义的狗狗类继承了Animal类的属性,更改了,父类中方法的输出,使得减少而重复性的代码量,达到了简介高效的作用。

2.继承

代码如下(示例):

class Animal: #定义一个动物类
	同上
class Dog(Animal):
	同上
class Cat(Animal):
	def greet(self):
		print("MiaoMiao......,I am an %s."%self.name)
def hello(Animal):    # 多态使用
	Animal.greet()   
dog = Dog("dog")
hello(dog)
cat = Cat("cat")
hello(cat)

  通过上面代码的展示,我们可以体会到多态的妙用,减少了代码中重复性的工作。

三、调用父类的构造方法

  在子类中的构造方法中,调用父类构造方法的方式有 2 种,分别是:
  1、类可以看做一个独立空间,在类的外部调用其中的实例方法,可以向调用普通函数那样,只不过需要额外备注类名(此方式又称为未绑定方法);
  2、使用 super() 函数。但如果涉及多继承,该函数只能调用第一个直接父类的构造方法。

# Python 2.x 中,super() 函数的使用语法格式如下:
super(Class, obj).__init__(self,...)
# Python 3.x 中,super() 函数有一种更简单的语法格式:
super().__init__(self,...)

[参考链接]http://c.biancheng.net/view/2290.html

总结

  以上就是今天要讲的内容,本文仅仅简单介绍了类的定义、调用方法以及继承。然而继承是一个较为难以理解清楚的板块,本文也只是简单的介绍了一下,需要深入学习的码友们可以选择听一些大牛们的课程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想拯救世界_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值