《Python编程:从入门到实践》第9章学习小结

本文总结了《Python编程:从入门到实践》第9章的学习内容,重点介绍了类的方法,特别是`__init__()`构造方法以及self参数的作用。讲解了如何使用句点表示法调用方法,类的继承概念,以及`super()`函数在子类中的应用。此外,提到了OrderedDict类用于保持字典插入顺序,并推荐了一篇深入解释Python类的博客文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习笔记:

方法、属性
方法__init__()是一个特殊的方法,每当你根据Dog类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。
我们将方法__init__()定义成了包含三个形参:self、name和age。在这个方法的定义中,形参self必不可少,还必须位于其他形参的前面。Python调用这个__init__()方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最后两个形参(name和age)提供值。
方法__init__()创建一个表示特定小狗的示例,并使用我们提供的值来设置属性name和age。方法__init__()并未显式地包含return语句,但Python自动返回一个表示这条小狗的实例。
在引用类中的函数时,要用句点表示法。(★my_dog.sit(),不要把my_dog忘记!!!)
一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
super()是一个特殊函数,帮助Python将父类和子类关联起来。这行代码让Python调用ElectricCar的父类的方法__init__(),让ElectricCar实例包含父类的所有属性。(★不要忘记super后面的())
在子类中重写父类中的方法,可在子类中定义一个和父类中方法重名的方法。
导入类和导入函数模块的方法一致,注意父类要先导入

python标准库:
要创建字典并记录其中的键—值对的添加顺序,可使用模块collections中的OrderedDict类。(一般来说,dict内部存放的顺序和key放入的顺序没有关系,但使用OrderedDict类可以使它的内部存放关系取决于和key放入的顺序。)
/问题:还是不是很懂字典内部存储的顺序和key的放入顺序无关。

看书随手写的代码:

class Dog():#创建类
	def __init__(self,name,age):
		self.name=name
		self.age=age
	
	def sit(self):
		print(self.name+'-sit')
	
	def jump(self):
		print(self.name+'-jump')


my_dog=Dog('chency',20)#此后my_dog相当于self
my_dog.sit()
my_dog.jump()
print(my_dog.name)
class Car():
	def __init__(self,make,model,year):
		self.make=make
		self.model=model
		self.year=year
		self.lc=0
	
	def read_lc(self):
		print(self.lc)
	
	def update_lc(self,mile):
		if mile>=self.lc:
			self.lc=mile
		else:
			print("you can't")

class Ele_car(Car):#继承父类Car
	def __init__(self,make,model,year):
		super().__init__(make,model,year)#super()是一个特殊函数,帮助Python将父类和子类关联起来
	def print_car(self):#子类特殊的方法
		print("good")
			
my_car=Car('nanjing','baoma','2020')
my_car.read_lc()
my_car.update_lc(100)
my_car.read_lc()
my_car.update_lc(80)
my_car.read_lc()
my_tesla = Ele_car('tesla', 'model s', '2016') 
my_tesla.read_lc()
my_tesla.print_car()

学习心得:

这一章的内容一开始不能很好理解,所以花了一些时间消化。

https://www.cnblogs.com/chengd/articles/7287528.html

这一篇文章写的很好,将“类”这个概念讲的很具体、很清晰。读完这一篇,看书上的内容就很轻松了。 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值