2018-11-07 类

2018-11-08  本文已影响0人  AngelTeng
  1. 作用域:一个定义于某模块中的函数的全局作用域是该模块的命名空间,而不是该函数的别名被定义或调用的位置
  2. example
class MyClass:
    i = 12345
    # 类的实例化操作会自动为新创建的类实例调用 __init__() 方法
    def __init__(self,realpart, imagpart):
        self.data = []
        self.r = real part
        self.im = imagpart
    # 一般方法的第一个参数被命名为 self,这仅仅是一个约定
    def f(self):
        return 'hello world'

>>> x = MyClass('realpart','imagpart')
  1. 继承
class DerivedClassName(BaseClassName):
    pass
class DerivedClassName(modname.BaseClassName):
    pass

# 多继承
class DerivedClassName(Base1, Base2, Base3):
    pass
# 函数 isinstance()用于检查实例类型
isinstance(obj, int)
# 函数 issubclass()用于检查类继承
issubclass(bool, int)
  1. public: name
    protect : _name
    private: __name

  2. 迭代器:

class Reverse:
  # 定义一个 __iter__()方法,使其返回一个带有 __next__()方法的对象。
    """Iterator for looping over a sequence backwards."""
    def __init__(self, data):
        self.data = data
        self.index = len(data)
    def __iter__(self):
        return self
    def __next__(self):
        if self.index == 0:
            raise StopIteration
        self.index = self.index - 1
        return self.data[self.index]
  1. 生成器
def reverse(data):
    for index in range(len(data)-1, -1, -1):
        yield data[index]
for char in reverse('golf'):
     print(char)
上一篇下一篇

猜你喜欢

热点阅读