以下是我在Python类学习过程中(有C++基础),做的一些知识小结,仅供大家参考。
创建类
下面是通过一个实例来进行知识点小结。
class Dog():
def __init__(self,name,age):
self.name=name
self.age=age
def sit(self):
print(self.name.title()+" is now sitting.")
def roll_over(selfO):
print (selfO.name.title()+" rolled over!")
方法 init()
类中的函数称为方法,此方法__init__()是一个特殊的方法,开头和末尾各有两个下划线,当创建Dog的新实例时,Python会默认运行它。形参self必不可少且位于其他形参前面,调用此方法时,不用给self赋值,,每个与类相关联的方法调用都会自动传递实参self。
给属性指定默认值
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odomeder_reading=0 #给属性制定默认值
def get_descriptive_name(self):
long_name=str(self.year)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
print("This car has "+ str(self.odomeder_reading)+" miles on it.")
def update_odometer(self,mileage):
if mileage>=self.odomeder_reading:
self.odomeder_reading=mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self,miles):
self.odomeder_reading+=miles
my_new_car=Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
指定默认值后,就无需包含为它提供初始值的实参。
修改属性的值
直接修改属性的值
my_new_car.odometer_reading = 23
通过方法修改属性的值
my_new_car.update_odometer(23)
通过方法对属性的值进行递增
def increment_odometer(self,miles):
self.odometer_reading += miles
继承
一个类继承另一个类时,他将自动获得另一个累的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有的属性和方法,同时还可以定义自己的属性和方法。
class Car():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=0
def get_descriptive_name(self):
return(str(self.year)+' '+self.make+' '+self.model)
def fill_gas_tank(self):
print("100")
class Battery():
--snip--
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year) #关联父类
self.battery_size=70 #给子类定义属性
self.battery = Battery() #将实例用作属性
def describe_battey(self): #给子类定义方法
print("This car has a "+str(self.battery_size)+'-kwh battery')
def fill_gas_tank(self): #重写父类的方法
print("This car doesn't need a gas tank! ")
my_tesla=ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battey()
my_tesla.fill_gas_tank()
super() 是一个特殊函数,帮助Python将父类和子类关联起来。
可通过在子类中重写与父类同名的方法,可替代父类中该同名方法。
导入类
导入单个类
my_car.py
from car import Car
一个模块储存多个类
从一个模块中导入多个类
my_car.py
from car import Car,ElectricCar
导入整个模块
my_car.py
from module_name import #
在一个模块中导入另一个模块
参考书籍《Python编程从入门到实践》
2020.8.5_第三周