python基本语法学习--类


前言

这次的学习内容主要是面向对象的类。


一、创建和使用类

如下是一个类的简单定义,Dog后面没有圆括号,说明这个类没有继承其他类,是从空白创建的该类。

>>> class Dog:
	def __init__(self,name,age):
		self.name = name
		self.age = age
	def sit(self):
		print("{name} is sit".format(name = self.name))

其中的__init__()方法,是一个魔法方法,这个方法中有三个形参,self,name,age,其中self不能缺少,因为当调用该类创建一个实例时,会自动调用init方法,然后将自动传入实参self,每个与实例相关的方法调用都会自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

其中的sit()方法是一个普通方法,只有一个形参self,说明创建的实例可以调用该方法。

dog_1 = Dog('deng',18)
dog_1.sit()

上面就是创建了Dog类的一个实例dog_1,只传入两个实参name和age,self会自动传入。然后调用sit()方法

有时候也可以给有些属性指定指定默认值。
例如

>>> class Dog:
	def __init__(self,name,age):
		self.name = name
		self.age = age
		self.number = 100
	def sit(self):
		print("{name} is sit".format(name = self.name))

>>> dog_1 = Dog('deng',18)
>>> dog_1.number
100
>>> 

在定义这个类时,指定number属性的值为100,创建一个该类的实例,可以打印出这个默认属性的值。

二、继承

编写类时,不一定非要从空白处创建,可以选择继承一个父类。
当一个类继承一个父类时,会获得父类的所有属性和方法。子类继承了父类的所有属性和方法后,同时还可以定义自己的属性和方法。

class Animal:
	def __init__(self,name,age):
		self.name = name
		self.age = age
	def sit(self):
		print("sittint")

这里定义了一个Animal类

 class Dog(Animal):
	def __init__(self,name,age,number):
		super().__init__(name,age)
		self.number = number

然后定义一个Dog类,继承自Animal父类。在子类的__init__方法中,首先super().__init__(name,age)的作用是调用父类的__init__方法,让子类包含这个方法中定义的所有属性。可以看到子类Dog()比父类Animal()多一个属性number,所以接下来再为number属性赋值。

如果父类的方法对于子类不适应,也可以选择重写父类的方法,在子类中写一个与父类同名的方法名就行。

猜你喜欢

转载自blog.csdn.net/weixin_47250738/article/details/130665702