• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python类的高级函数详解

    __str__函数

    def __str__(self):
    	return str_type

    __getattr__函数

    def __getattr__(self, key):
    	print(something.….)

    key: 调用任意不存在的属性名

    可以是任意类型也可以不进行返回

    __setattr__函数

    def __settattr__(self, key,value):
    	self._dict_[key] = value

    key当前的属性名

    value 当前的参数对应的值

    __call__函数

    def __call__(self,*args,**kwargs):
    	print( 'call will start')

    实战

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time     : 2021/8/15 18:22
    # @Author   : InsaneLoafer
    # @File     : object_func.py
    
    class Test(object):
    
        def __str__(self):
            return 'this is a test class'
    
        def __getattr__(self, key):
            return '这个key:{}并不存在'.format(key)
    
        def __setattr__(self, key, value):
            print(key, value)
            self.__dict__[key] = value
            print(self.__dict__)
    
        def __call__(self, *args, **kwargs):
            print('call will start')
            print(args, kwargs)
    
    t = Test()
    print(t)
    print(t.a)  # 不存在的对象会直接打印出来,而不是报错
    t.name = 'insane'
    t(123, name='loafer')
    
    
    """实现链式操作"""
    class Test2(object):
        def __init__(self, attr=''):
            self.__attr = attr
    
        def __call__(self, name):
            print('key is {}'.format(self.__attr))
            return name
    
        def __getattr__(self, key):
            if self.__attr:
                key = '{}.{}'.format(self.__attr, key)
            else:
                key = key
            print(key)
            return Test2(key)  # 递归操作
    
    t2 = Test2()
    print(t2.a.c('insane'))
    this is a test class
    这个key:a并不存在
    name insane
    {'name': 'insane'}
    call will start
    (123,) {'name': 'loafer'}
    a
    a.c
    key is a.c
    insane
    
    Process finished with exit code 0

    到此这篇关于Python类的高级函数的文章就介绍到这了,更多相关Python高级函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python 类相关概念理解
    • Python入门变量的定义及类型理解
    • python学习之新式类和旧式类讲解
    • python入门课程第四讲之内置数据类型有哪些
    • Python的内置数据类型中的数字
    • 一篇文章带你了解Python中的类
    上一篇:python列表与列表算法详解(2)
    下一篇:利用Python+Selenium破解春秋航空网滑块验证码的实战过程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python类的高级函数详解 Python,类,的,高级,函数,详解,