Python类的常用高级函数

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Python类的常用高级函数

Mar丶流年   2022-05-23 我要评论

1.基础介绍

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

2.定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

3.__init__

# coding:utf-8

if __name__ == '__main__':

    '''
    定义:def __init__(self,参数1,参数2......):
        ......
    使用:在类实例化时触发  类名(参数1,参数2.......)
    '''

    class A(object):
        def __init__(self, name, sex):
            print(f'name is {name}, sex is {sex}')

    a = A('xie', 'man')  # name is xie, sex is man

4.__getattr__

# coding:utf-8

if __name__ == '__main__':

    '''
    定义: def __getattr(self,属性名)
    使用:在访问类不存在的或无权限的属性时触发 object.属性名
    '''

    class B(object):
        __name = 'rui'
        name = 'xie'

        def __getattr__(self, name):
            return f'name is {name}'

    b = B()
    print(b.name)  # xie
    print(b.__name)  # name is __name
    print(b.sex)  # name is sex
    print(b._B__name)  # rui

5.__setattr__

# coding:utf-8

if __name__ == '__main__':

    '''
    定义: def __setattr__(self,属性名,属性值)
    使用: 给类设置属性值时触发 object.属性名 = 属性值
    '''

    class C(object):
        name = ''
        __name = ''
        __sex = ''

        def __setattr__(self, key, value):
            print(f'I want set key:{key},value:{value}')

    c = C()
    c.name = 'xie'  # I want set key:name,value:xie
    c.age = '6666'  # I want set key:age,value:6666
    c.__sex = 'man'  # I want set key:__sex,value:man

6.__call__

# coding:utf-8

if __name__ == '__main__':

    '''
    定义: def __call__(self,参数1,参数2......)
    使用: 把类实例当做函数调用,通过object(参数1,参数2......)触发
    '''

    class D(object):
        def __call__(self, *args, **kwargs):
            print(f'args is {args},kwargs is {kwargs}')

    d = D()
    d(*(1, 2, 3), **{'name': 'xie'})  # args is (1, 2, 3),kwargs is {'name': 'xie'}

7.__str__

# coding:utf-8

if __name__ == '__main__':

    '''
    定义: def __str__(self)
    使用: 打印对象时触发 print(object)
    '''
    class F(object):
        def __str__(self):
            return '通常用来描述类'

    f = F()
    print(f)  # 通常用来描述类

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们