`

Python Function parameters

阅读更多

A note on the Function Argument.

 

 

 

# about the parameter of the python argument
# there are 4 types of argument that a Python Fucntino that can accept
# they are
#   1. fixed argument (or called non-default argument) 
#   2. the positional arguments
#   3. the keyword arguments
#   4. the default arguments ( a special case of keyword argument)
#
# the syntax to define python function is as follow
#    func_name(a, b, ..., [*args | default=default_values]], **kwargs)
# 
#  so the general rule of defining python argument is as follow
#      def func_name(a, b, ..., *args, **kwargs)
# however, it is quite confusing when the default value for a argument comes into the play
# to declare a default argument, you normally do this 
#      def func_name(a, b, ..., *args, default=default_value)
# because the default value for an argument syntactically looks like the keyword argument
# which means
#    1. you cannot have default argument before the positional argument
#        def func_name(a, b, ..., default=default_value, *args) # raise TypeError
#    2. it is not allowed if to have default argument in the middle of fixed argument
#        def func_name(a, ..., default=default_value, b, ..., *args) # raise TypeError
#    3. you cannot have both positional argument and default argument together...
#        def func_name(a, b, *args, default="default_value") # raise TypeError
#        def func_name(a, b, default=default_value", *args, **kwargs) # raise TypeError
#    4. You can have an argument with default value after the positional argument and before the 
#       keyword argument (**kwargs) (you can think default valued argument is a special form of
#       keyword argument.  
#         def func_name(a, b, ..., default=default_value, **kwargs)
#    5. As said in 4, if you try to put the default argument after the keyword arguments, it fails
#         def func_name(a, b, ..., **kwargs, default=default_value);



def could_compile1(a, b, default="default_value", **kwargs):
    print a, b
    print default
    for key in kwargs:
        print("keyword argument {0} = {1}".format(key, kwargs[key]))

def would_fail(a, default="default_value", b, *args):
    pass


def would_fail2(a, b, default="default_value", *args):
    pass


#def would_fail3(a, b,*args, default="default_value", **kwargs):
#    pass

#def would_fail4(a, b, default="default_value", *args, **kwargs):
#    pass

#def would_fail5(a, b, **kwargs, default="default_value"):
#    pass


def main():
    could_compile1(1, 2, default="overriden default value", optional1="optional 1 value", optional2="optional 2 value")
    # would_compile2(1, "override_default_value", 2, 3, 4) # SyntaxError: non-default argument follows default argument
    # would_fail2(1, 2, "override_default_value", 3, 4) # SyntaxError: non-default argument follows default argument
    
    pass
 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Python 面向对象编程

    "Python 面向对象编程基础知识点" ...在 Python 中,定义函数用 def 关键字,基本形式如下:def function_name(parameters): block。Python 函数定义和 C 语言不通,只需要使用 def 关键字和函数名、参数列表和函数体。

    python试题python面试题目

    def function_name(parameters): # function body ``` 函数可以接收参数,返回值,或者两者都有。 4. **什么是__init__?** `__init__`是Python中的一个特殊方法(也称魔术方法),当创建一个类的实例时,这个...

    python 函数的使用-python基础,python函数的使用说明,有python2的参考代码

    def function_name(parameters): # function body ``` 函数名称(function_name)应该具有描述性且遵循Python的命名规则,通常是小写字母和下划线的组合。圆括号内的`parameters`是函数接受的输入,也称为形式参数...

    python3.7有需要的拿去

    3. 起始注释的类型提示(Type Hints for Function Parameters and Return Values) Python 3.7 加强了类型注解,允许在函数定义时为参数和返回值添加类型注解,有助于静态类型检查工具如Mypy进行类型检查,提升代码...

    [Python入门及进阶笔记]Python-基础-函数小结

    def function_name(parameters): function_body return return_value ``` - `function_name`是函数的标识符。 - `parameters`是函数接收的输入,也称为参数。 - `function_body`是函数执行的代码块。 - `return_...

    python函数.docx

    def function_name(parameters): # 函数体 ``` 函数的标识符(function_name)是函数的名称,用于调用函数。参数(parameters)放在圆括号中,可以是零个或多个,之间用逗号隔开。函数体通常包含一系列的语句,...

    python 3 基础教程

    Python中的函数使用`def`关键字定义,例如`def function_name(parameters):`。函数能提高代码的复用性,使程序结构更清晰。 五、模块与导入 Python通过`import`语句导入其他模块,如`import math`导入数学库。`from...

    Python-3.8.6rc1.tgz

    另一个重要的特性是位置只有元组参数(Positional-Only Parameters)。这是一种限制函数调用时参数传递方式的新方法。通过在参数名前添加`/`,可以指定某些参数只能作为位置参数传递,而不能通过关键字传递。这有助...

    Python程序设计应用报告.doc

    def function_name(parameters): function_body return value ``` 函数可以接收参数,并通过`return`语句返回值。此外,Python还支持匿名函数,即lambda函数,其形式如下: ```python lambda parameters: ...

    python3.6.5参考手册 chm

    Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In ...

    python-3.3.2.amd64.msi-官网原版下载

    3. **PEP 3102 - Keyword-Only Parameters**: 在Python 3.3中,开发者可以声明仅接受关键字参数的函数,增强了函数接口的清晰度,减少了错误的可能性。 4. **生成器表达式改进**: 支持在生成器表达式中使用赋值操作...

    python实战

    def function_name(parameters): # 函数体 return result ``` 其中`function_name`为函数名,`parameters`为函数参数列表。 **示例**: ```python def greet(name): return f"Hello, {name}!" ``` ##### 函数...

    Modeling-and-Simulation-in-Python-pdf.pdf.pdf

    文档提及了安装Python和相关库的要求,这涉及到配置Python环境以及获取必要的Python库。这一步是进行Python编程及后续仿真的基础。 2. Jupyter Notebook的使用 文档提到了运行Jupyter,Jupyter Notebook是用于编写...

    Python-全面Python编程速查表

    1. **定义函数**:`def function_name(parameters):`,如`def add(a, b): return a + b`。 2. **默认参数与可变参数**:默认参数在函数定义时赋值,如`def greet(name="World"):`。可变参数用星号(*)表示,如`def ...

    Python3程序设计课后习题参考答案.pdf.pdf

    - 函数定义使用`def`关键字,如`def function_name(parameters):`。 - `format()`方法和`str.format()`用于格式化字符串输出。 - 位置参数(如`func(a, b)`)和关键字参数(如`func(a=a, b=b)`)是函数调用的两种...

    Python脚本入门学习经典手册

    def function_name(parameters): # 函数体 return value ``` 函数可以没有参数,也可以返回多个值。 **5. 流程控制结构:IF,WHILE,FOR** - **if 语句**:用于条件判断。 ```python if condition: # 如果...

    python基本语法概述

    def function_name(parameters): """docstring""" statement(s) ``` 2. **参数传递**: - 参数可以通过位置或关键字传递。 - 默认参数值可以在定义时设置。 3. **返回值**: - 使用 `return` 语句返回一个...

    python用法.doc

    函数是Python中组织代码的重要方式,用`def`定义,如`def function_name(parameters):`。函数内部的代码块缩进表示,可以有多个参数,并通过`return`语句返回结果。模块是Python的另一大特色,它允许将相关函数封装...

    Python库 | iminuit-1.5.4-cp36-cp36m-win32.whl

    print("Parameters:", m.values) print("Errors:", m.errors) ``` 在这个例子中,`my_function`是我们要拟合的目标函数,`migrad()`方法用于执行最小化。`m.fval`给出最小化后的函数值,`m.values`包含了最佳参数值...

Global site tag (gtag.js) - Google Analytics