跳转至

魔法函数

魔法函数(Magic Methods)是 Python 内置以双下划线开头结尾的 ,用来 增强自己写的类,使其具有新的特性 的一类特殊函数

迭代

函数 说明
__iter__ 可迭代(Iterable)声明
__next__ 返回 下一个值,直到抛出 StopIteration 异常

class Fib(object):
    def __init__(self,num):
        # 迭代初值
        self.prev=0
        self.curr=1
        # 计数器
        self.num=num

    # 声明 Fib 为可迭代对象
    def __iter__(self):
        return self

    # 实现迭代
    def __next__(self):
        if self.num>0:
            # 暂存 self.curr 以返回当前值而非下一个值
            ans=self.curr
            self.prev, self.curr=self.curr, self.prev+self.curr
            self.num-=1
            return ans
        else:
            raise StopIteration

for x in Fib(5):
    print(x)
1
1
2
3
5

可调用

class call(object):
    def __init__(self):
        pass

    def __call__(self,x,y):
        if x>y:
            return x
        else:
            return y

a=call()
print(a(3,4))
4

上下文管理

评论