继承
父类是继承的类,也称为基类;子类是另一个类继承的类,也称为派生类。
# 创建父类和子类 将从Person类继承属性和方法
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
x = Person("Bill", "Gates")
x.printname()
class Student(Person)
# 当添加init函数时 子类将不继承父的init函数 覆盖了父的init函数 如保持父的init函数,需添加父的init函数调用
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
x = Student("Elon", "Musk")
x.printname()
# super()函数 会使子类从其父继承所有方法和属性
迭代器
迭代器是一个对象,该对象包含可计数数字。迭代器是可迭代的对象,意味着可以遍历所有值。
列表、元组、字典和集和都可以迭代对象,即它们是迭代的容器。
# 使用方法包括 __iter__() __next__() 类似初始函数__init__()
# 从元组中返回一个迭代器,并打印每一个项目;也可以字符串返回迭代器,打印每一个字符;同时for循环遍历也可以迭代对象,每个循环执行next()方法
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
if self.a <=20:
x = self.a
self.a += 1
return x
else:
raise StopIteration # 作为一个终止条件 否则会一直进行
myclass = MyNumbers()
myiter = iter(myclass)
for x in myiter:
print(x)
多态
词意为“多种形式”,指在许多对象或类上执行的具有相同名称的方法/函数/操作符。
# len()函数是python函数用于不同对象的例子 包括字符串 元组 字典
class Vehicle:
def __init__(self, brand, model)
self.brand = brand
self.model = model
def move(self):
print("Move!")
class Car(Vehicle):
pass
class Boat(Vehicle):
def move(self):
print("Sail!")
class Plane(Vehicle):
def move(self):
print("Fly!")
car1 = Car("Ford", "Mustang")
boat1 = Boat("Ibiza", "Touring 20")
plane1 = Plane("Boeing", "747")
for x in (car1, boat1, plane1)
print(x.brand)
print(x.model)
x.move()
# 子类从父类继承属性和方法
# Car Boat Plane类是空的 从Vehicle继承了属性和函数