【Python 高级】成员修饰符

成员修饰符

#!/usr/bin/env Python3
# -*- coding: utf-8 -*-
# @Software: PyCharm
# @virtualenv:workon
# @contact: 1040691703@qq.com
# @Desc:Code descripton
__author__ = '未昔/AngelFate'
__date__ = '2020/5/31 22:04'


class a:  # 说明父类的私有成员无法在子类中继承
    def __init__(self):
        self.ge = 123
        self.__gene = 456


class b(a):
    def __init__(self, name):
        self.name = name
        self.__age = 18
        super(b, self).__init__()  # 这一行会报错

    def show(self):
        print(self.name)
        print(self.__age)
        print(self.ge)
        print(self.__gene)  # 这一行也会报错


obj = b("wangwei")
print(obj.name)
print(obj.ge)
# print(obj.__gene)  # 这个也会报错
obj.show()

类的对象如果想要变成一个可迭代对象,那么对象中必须要有 __iter__ 方法,并且这个方法返回的是一个迭代器。

for 循环的对象如果是一个可迭代的对象,那么会先执行对象中的 __iter__ 方法,获取到迭代器,然后再执行迭代器中的 __next__ 方法获取数据。如果 for 循环的是一个迭代器,那么直接执行迭代器中的 __next__ 方法。