欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python中的魔法方法【技能突破】

程序员文章站 2022-03-10 12:39:55
python想多么简单就多么简单 PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九起起巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新 __ getattribute __(self,name ......

python想多么简单就多么简单

ps注意:很多人学python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个python全栈免费答疑.裙 :七衣衣九起起巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新


__ getattribute __(self,name):当特性name被访问时自动被调用
__ getattr __(self,name):当特性name被访问且对象没有相应的特性时被自动调用
__ setattr __(self,name,value):当试图给特性name赋值时会被自动调用
__ delattr __(self,name):当试图删除特性name时被自动调用

class rectangle:
    def __init__(self):
        self.width=0;
        self.height=0;
    def __setattr__(self,name,value):
        if name == 'size':
            self.width,self.height = value
        else:
            self.__dict__[name] = value

    def __getattr__(self,name):
        if name == 'size':
            return self.width,self.height
        else:
            raise attributeerror

__ init__()方法:初始化方法,对象被创建时调用
__ iter __()方法:当被用作迭代器使用时,必须包含此方法
next()方法:每次被访问时都会调用这个方法一次
查找斐波那契数列中比1000大的数中的最小的数

class fibs:
        def __init__(self):
            self.a = 0;
            self.b = 1;

        def __next__(self):
            self.a,self.b = self.b,self.a+self.b
            return self.a

        def __iter__(self):
            return self

fibs = fibs()
for f in fibs:
    if f > 999:
        print(f)
        break

总结注意:很多人学python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个python全栈免费答疑.裙 :七衣衣九起起巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新python教程项目可拿,,一起相互监督共同进步!

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。