zoukankan      html  css  js  c++  java
  • Python中的魔法方法【技能突破】

    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教程项目可拿,,一起相互监督共同进步!

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

  • 相关阅读:
    在LoadRunner向远程Linux/Unix执行命令行并收集性能数据
    在LoadRunner中执行命令行程序之:popen()取代system()
    Linux基础--分类与合并命令
    sed and awk学习笔记
    vim操作
    生命是一种长期而持续的累积过程
    SQL Server数据导入导出的几种方法
    Http协议
    LeetCode 470. 用 Rand7() 实现 Rand10()(Implement Rand10() Using Rand7())
    LeetCode 238. 除自身以外数组的乘积( Product of Array Except Self)
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12448254.html
Copyright © 2011-2022 走看看