1.继承允许我们定义继承另一个类的所有方法和属性的类。
父类是继承的类,也称为基类。
子类是从另一个类继承的类,也称为派生类
1.1创建父类
任何类都可以是父类
eg:创建一个名为 Person 的类,其中包含 firstname 和 lastname 属性以及 printname
class Person:
def _init_(self,fname,lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname,self.lastname)
# 使用 Person 来创建对象,然后执行 printname 方法
X = Person("Bill","Gates")
X.printname()
1.2创建子类
如果不想向该类添加任何其他属性或方法,可以使用 pass 关键字;
通过使用 super() 函数,您不必使用父元素的名称,它将自动从其父元素继承方法和属性
class Person://创建父类
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person)://创建子类,Student 类拥有与 Person 类相同的属性和方法
def __init__(self, fname, lname, year)://添加 __init__() 函数时,子类将不再继承父的 __init__() 函数,如果需要继承则需添加对父的 __init__() 函数的调用如: Person.__init__(self, fname, lname)
super().__init__(fname, lname)// super() 函数:它会使子类从其父继承所有方法和属性
self.graduationyear = year//把名为 graduationyear 的属性添加到 Student 类
def welcome(self):
print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
x = Student("Elon", "Musk", 2019)
x.welcome()
运行结果:
2.迭代(与for循环类似)
首先我们需要知道迭代器是什么?
迭代器是实现迭代器协议的对象,该对象包含值的可计数数字,意味着可以遍历所有值,它包含方法 iter() 和 next()
列表、元组、字典和集合都是可迭代的对象。它们是可迭代的容器
以元组为例:
(从元组返回一个迭代器,并打印每个值)
mylurple = ("apple","banana","chery")
myit = iter(mystr)
print(next(myit))
print(next(myit))
print(next(myit))
用for语句返回
提示:for 循环实际上创建了一个迭代器对象,并为每个循环执行 next() 方法。
mylurple = ("apple","banana","chery")
for x in mylurple:
print(x)
字符串也是可迭代的对象,它返回每一个字符
eg:
mystr = "banana"
myit = iter(mystr)
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
for语句:
mystr = "banana"
for x in mystr:
print(x)
创建迭代器&StopIteration
要把对象/类创建为迭代器,必须为对象实现 iter() 和 next() 方法
class MyNumber:
def _iter_ (self):
self.a = 1
return self
def _next_(self)://__next__() 方法也允许您执行操作,并且必须返回序列中的下一个项目
if self.a <= 20:
x = self.a
self.a += 1
return x
else://大于20时停止使用StopIteration 语句,防止迭代永远进行下去
raise StopIteration
myclass = MyNumbers()
myiter = iter(myclass)
for x in myiter:
print(x)
源于w3school Python,感兴趣的朋友可以直接去看这个
下一篇见!拜拜