相关疑难解决方法(0)

参数和参数之间有什么区别?

当口头谈论方法时,我永远不确定是否使用单词参数参数或其他东西.无论哪种方式,其他人都知道我的意思,但是什么是正确的,这些条款的历史是什么?

我是一名C#程序员,但我也想知道人们是否使用不同语言的不同术语.

根据记录,我是自学成才,没有计算机科学的背景.(请不要告诉我阅读Code Complete,因为我问这个是为了其他没有史蒂夫麦康奈尔精彩书籍的人的利益.)

摘要

普遍的共识似乎是在团队环境中交替使用这些术语是可以的.除非您定义精确的术语; 那么你也可以使用" 形式参数/参数"和" 实际参数/参数"来消除歧义.

language-agnostic parameters arguments terminology

661
推荐指数
21
解决办法
22万
查看次数

如果它们是None,则调用没有可选参数的函数

有一个带有可选参数的函数.

def alpha(p1="foo", p2="bar"):
     print('{0},{1}'.format(p1, p2))
Run Code Online (Sandbox Code Playgroud)

让我迭代一下当我们以不同方式使用该函数时会发生什么:

>>> alpha()
foo,bar
>>> alpha("FOO")
FOO,bar
>>> alpha(p2="BAR")
foo,BAR
>>> alpha(p1="FOO", p2=None)
FOO,None
Run Code Online (Sandbox Code Playgroud)

现在考虑我想要调用它的情况,alpha("FOO", myp2)并且myp2将包含要传递的值,或者是None.但即使该函数处理p2=None,我希望它使用其默认值"bar".
也许这令人困惑,所以让我改写一下:

如果myp2 is None,打电话alpha("FOO").不用了,打电话alpha("FOO", myp2).

区别是相关的,因为alpha("FOO", None)结果不同alpha("FOO").

我如何简洁(但可读)做出这种区分?

一种可能性通常是在内部检查无alpha,这将被鼓励,因为这将使代码更安全.但是假设alpha它实际上应该在其他地方使用,None就像它一样.

我想在来电方面处理这个问题.

一种可能性是区分案例:

if myp2 is None:
    alpha("FOO")
else:
    alpha("FOO", myp2)
Run Code Online (Sandbox Code Playgroud)

但是,当有多个这样的论点时,这很快就会成为很多代码.(指数,2 ^ n)

另一种可能性是简单地做alpha("FOO", myp2 or "bar"),但这需要我们知道默认值.通常,我可能会采用这种方法,但我可能稍后更改默认值, …

python python-3.x

29
推荐指数
4
解决办法
6361
查看次数

python实例变量作为可选参数

在python中,有没有办法在类方法中使用实例变量作为可选参数?即:

def function(self, arg1=val1, arg2=val2, arg3=self.instance_var):
    # do stuff....
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

python class function

7
推荐指数
2
解决办法
3161
查看次数