Python--继承、迭代

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,感兴趣的朋友可以直接去看这个
下一篇见!拜拜

你可能感兴趣的:(python学习,python,开发语言,学习)