Python学习笔记_Day 9 类

创建类和使用类

先看一个例子:

class Dog():
	"""模拟小狗"""
	
	def _init_(self, name, age):
		"""初始化属性name和age"""
		self.name = name
		self.age = age
	
	def sit(self):
		"""模拟小狗被命令坐下"""
		print(self.name.title() + " is now sitting.")
	
	def roll_over(self):
		"""模拟小狗被命令打滚"""
		print(self.name.title() + " rolled over!") 

这是一个简单的类。
1、类的首字母大写。
2、方法_init_(): 类中的函数称为方法,而该方法是一个特殊的方法,当用类创建实例时,python都会自动运行它。它的形参中必须包含self,而且必须位于其他形参之前,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。self会自动传递,所以我们不需要传递它。

根据类创建实例

my_dog = Dog('Doudou', 6) #创建一个实例

1、访问属性
使用句点表示法访问属性。

my_dog.name

2、访问方法

my_dog.sit()

使用类和实例

1、给属性指定默认值

  • 类的每个属性都必须有初始值,哪怕这是值是0或空字符串。可以在方法_init_()中指定初始值,这样就无需为它提供初始值的形参。
def _init_(self, name, age):
		"""初始化属性name和age"""
		self.name = name
		self.age = age
		self.color = 'brown'  #将狗的颜色默认值设为brown

2、修改属性的值
(1)直接修改属性的值

my_dog.color = 'white'  #通过对象直接修改属性的值

(2)通过方法修改属性的值

def change_color(self,color):
		"""修改小狗的颜色"""
		self.color = color

my_dog.change_color('red')#通过方法修改属性值

继承

一个类继承另一个类时,它将自动获得另一个类的所有属性和方法。原有的类称为父类,而新类称为子类。
1、子类的方法_init()_
创建子类的实例时,python首先要完成的任务是给父类的所有的属性赋值。

class LittleDog(Dog):
	"""小型狗类继承狗类"""
	
	def _init_(self, name, age):
		"""初始化父类的属性"""
		super()._init_(name,age)

2、给子类定义属性和方法

class LittleDog(Dog):
	"""小型狗类继承狗类"""
	
	def _init_(self, name, age):
		"""初始化父类的属性"""
		super()._init_(name,age)
		self.size = 'small' #子类的属性
	
	def play():#子类的方法

3、重写父类的方法
重写的方法要和父类同名

class LittleDog(Dog):
	"""小型狗类继承狗类"""
	
	def _init_(self, name, age):
		"""初始化父类的属性"""
		super()._init_(name,age)
		self.size = 'small' #子类的属性
	
	def play():#子类的方法
	def sit(self):#重写父类的方法
        #重写的内容

导入类

1、导入单个类
我们可以把类存储在模块中,然后从模块中导入类。
我们把Dog类放入模块dog. py中,然后使用:

from dog import Dog

2、在一个模块中存储多个类
我们可以在一个模块中存储多个类。
3、从一个模块中导入所有类

from dog import Dog,Cat,Rabbit...

4.导入整个模块

import Dog #导入模块

之后需要用句点表示法访问类:

module_name.class_name

5、导入模块中的所有类

from module_name import *

6、在一个模块中导入另一个模块

类编码风格

  • 类名应采用驼峰命名法,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。
  • 在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类。
  • 在需要同时导入标准库中的模块和你编写的模块时,先编写导入标准库模块的import语句,在添加一个空行,然后编写导入你自己编写的模块的import语句。

猜你喜欢

转载自blog.csdn.net/weixin_44123362/article/details/89293233