我发现我们可以在函数调用参数中使用三元运算:
def foo(n):
print(n)
Run Code Online (Sandbox Code Playgroud)
a, b = 1, 2
foo(a if a>b else b)
# prints 2
Run Code Online (Sandbox Code Playgroud)
我想知道有没有一种方法可以在函数调用参数中使用 if 而不使用 else ?因此,如果它是真的,则将 a 传递给它,如果不是,则不要传递任何内容。
我试过了
foo(a if a>b else pass)
foo(a if a>b)
foo(if a>b: a)
foo(a>b and a)
Run Code Online (Sandbox Code Playgroud)
以上都不起作用。
感谢您的帮助。
编辑 - - -
抱歉,让我重新表述一下我的问题。
我要求的是一种确定是否应该根据条件传递参数的方法。
所以基本上我必须调用一个需要大量 kwargs 的大函数,比如:
# function call
thefunc(
a=1,
b=2,
c=3,
d=4,
e=5
#...
)
Run Code Online (Sandbox Code Playgroud)
所有参数都是由我决定的选项,或者在某些情况下是一个条件。
由于参数列表太大,因此不建议在 if 语句内编写函数调用,所以我需要知道是否有办法,例如:
thefunc(
a=1,
#if condition: b=2,
c=3,
....
)
Run Code Online (Sandbox Code Playgroud)
所以要确定是否给kwarg。如果没有也没关系,只是需要知道,谢谢。
有没有办法像git commit和git push命令一样将现有文件推送到 python 中的 gitlab 项目存储库,而不是创建新文件?
我目前正在使用python-gitlab包,我认为它只支持files.create使用提供的字符串内容创建新文件。在我的例子中,这会导致文件内容略有不同。
我正在寻找一种方法将 python 中的文件原封不动地推送到存储库中,任何人都可以帮忙吗?
这是我要完成的工作:我的模型中有一个“年龄”字段,我希望它的值是直到现在为止的持续时间-我的意思是现在是实时的,而不仅仅是obj创建时间或更新时间时间。
最初,我想知道django中是否存在某种动态字段,该字段值将仅基于公式进行更新。但是后来我发现这是不现实的,必须在某个时间点对其进行更新。
现在,我想到的是编写一个模型方法来计算值并将其分配给字段,并在每次查询类对象之前手动调用它并将新值写入字段。
我想知道有没有更好的方法可以完成此操作,因为我的方法会给数据库增加一些负担,而这可能只是不必要的。
谢谢你的帮助。