如果在执行函数时未传递参数,python是否会更改参数?
例如:如果在执行函数时未传递参数,python是否会更改参数?,python,Python,例如: #creating the function with params def symlinks(release_path, deploy_to, settings_file, roll_back=False, is_file=False): #doing something with all the params #executing the function symlinks(releasepath, deploypath, settingsfile, is_
#creating the function with params
def symlinks(release_path, deploy_to, settings_file, roll_back=False, is_file=False):
#doing something with all the params
#executing the function
symlinks(releasepath, deploypath, settingsfile, is_file=true)
在python中,有多种向函数传递参数的方法,上面的方法有效吗
我尝试了符号链接(releasepath,deploypath,True),但似乎它正在影响回滚。
回滚参数仍然是假的吗?可以说,找到问题答案的最酷方法是使用。你可以通过玩它学到很多东西
import inspect
inspect.getcallargs(symlinks, 'releasepath', 'deploypath', 'settingsfile', is_file=True)
=>
{'deploy_to': 'deploypath',
'is_file': True,
'release_path': 'releasepath',
'roll_back': False,
'settings_file': 'settingsfile'}
Python将按照传递的顺序将传入的值绑定到位置参数名,除非显式指定参数名 在您的情况下,如果使用以下符号链接调用函数:
symlinks(releasepath,deploypath,True)
,则默认值将用于其余2个参数(roll\u back
和is\u file
)
请参阅文档:由于
回滚
已经有一个默认值,因此不需要将其包含在函数调用中,除非您正在更改其值。因此,目前,我以两种不同的方式更改值,可以吗?我认为执行函数部分唯一的错误是is\u file=true
应该大写。但其他一切看起来都很好。我不想挖苦你,但是:你尝试的时候发生了什么?这是一个非常简单的实验。跳进去,看看发生的事情是否符合你的预期。:-)真正的问题是什么?你有没有试过不起作用的东西?