来源:python中国网 时间:2020-03-15

  python函数使用存在很多坑,non-default argument follows default argument这个报错只是众多坑之一,如果你想了解python函数更多的坑请查看此文python函数坑大全。

  此处的报错原因在于你在定义函数的时候把关键字参数放在了位置参数前面。参数的顺序写错了!比如你定义了如下函数:

 # -*- coding: utf-8 -*-

def echo(name='小明',age):
    pass


File "D:/pyscript/py3script/ceshi.py", line 3
    def echo(name='小明',age):
            ^
SyntaxError: non-default argument follows default argument


  实际上你应该这么来写,把参数顺序调换下:

# -*- coding: utf-8 -*-

def echo(age,name='小明'):
    pass





  更多函数的大坑如下:

  python函数坑之默认参数为可变数据类型

  python函数坑之修改不可变类型全局变量

  python函数坑之修改可变类型全局变量

  python函数坑之关键字参数、位置参数顺序

  python函数坑之修改可变类型全局变量

  python函数坑之修改不可变类型全局变量

疑难杂症

Tips:不要怕、多坚持、多动手、付出必有回报。