python函數定義中的參數說明


描述函數定義時 涉及到的 位置參數,默認參數,關鍵字參數,可變參數等的概念及用法

1 示例代碼

#! /usr/bin/env python
#  -*- coding: UTF-8 -*-
import logging


def get_default_logger():
    logger = logging.getLogger()
    console_handler = logging.StreamHandler()
    formatter = logging.Formatter('[%(asctime)s][%(levelname)s][%(name)s][%(message)s]')

    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)
    logger.setLevel(logging.DEBUG)

    return logger

logger = get_default_logger()


def func(must_arg, default='hello', *args, **kwargs):
    """
    函數定義
    :param must_arg:    必要的位置參數
    :param default:     默認參數
    :param args:        任意數量的位置參數
    :param kwargs:      任意數量的關鍵字參數
    :return:
    """
    logger.info('must arg type: {}, value:{}'.format(type(must_arg), must_arg))
    logger.info('default arg type: {}, value: {}'.format(type(default), default))
    logger.info('mutable arg type: {}, value:{}'.format(type(args), args))
    logger.info('keyword arg type: {}, value: {}'.format(type(kwargs), kwargs))


if __name__ == '__main__':
    # 調用示例
    func('function demo', 'hello world', 'foo', 'bar', name='python', value='2.7')

    tuple_demo = 'foo1', 'bar1', 'value1'
    func('function demo2', 'hello', tuple_demo, name='java', value='1.8')

輸出結果:

[2020-05-23 07:44:22,556][INFO][root][must arg type: <type 'str'>, value:function demo]
[2020-05-23 07:44:22,556][INFO][root][default arg type: <type 'str'>, value: hello world]
[2020-05-23 07:44:22,556][INFO][root][mutable arg type: <type 'tuple'>, value:('foo', 'bar')]
[2020-05-23 07:44:22,556][INFO][root][keyword arg type: <type 'dict'>, value: {'name': 'python', 'value': '2.7'}]

[2020-05-23 07:44:22,556][INFO][root][must arg type: <type 'str'>, value:function demo2]
[2020-05-23 07:44:22,556][INFO][root][default arg type: <type 'str'>, value: hello]
[2020-05-23 07:44:22,556][INFO][root][mutable arg type: <type 'tuple'>, value:(('foo1', 'bar1', 'value1'),)]
[2020-05-23 07:44:22,556][INFO][root][keyword arg type: <type 'dict'>, value: {'name': 'java', 'value': '1.8'}]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM