是否有可能在Python中重载函数?在C#中,我会做类似的事情
void myfunction (int first, string second)
{
//some code
}
void myfunction (int first, string second , float third)
{
//some different code
}
Run Code Online (Sandbox Code Playgroud)
然后当我调用函数时,它会根据参数的数量区分两者.是否有可能在Python中做类似的事情?
多年来,我一直使用cmd/DOS/Windowsshell并将命令行参数传递给批处理文件.例如,我有一个文件,zuzu.bat并在其中,我访问%1,%2等等.现在,我想,当我叫做同样的PowerShell脚本when I am in a Cmd.exe shell.我有一个脚本,xuxu.ps1(我已经将PS1添加到我的PATHEXT变量和与PowerShell关联的PS1文件).但无论我做什么,我似乎都无法从$args变量中得到任何东西.它的长度始终为0.
如果我在PowerShellshell中,而不是cmd.exe,它可以工作(当然).但我还不够舒服,无法全时在PowerShell环境中生活.我不想打字powershell.exe -command xuxu.ps1 p1 p2 p3 p4.我想打字xuxu p1 p2 p3 p4.
这是可能的,如果是的话,怎么样?
我无法工作的样本很简单,foo.ps1:
Write-Host "Num Args:" $args.Length;
foreach ($arg in $args) {
Write-Host "Arg: $arg";
}
Run Code Online (Sandbox Code Playgroud)
结果总是如下:
C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
Run Code Online (Sandbox Code Playgroud) 我有以下问题.我想从命令行运行mvn一个Main.java文件.Main.java接受参数.我如何从命令行执行此操作?
我试着找一个例子,但我没有成功.有人可以帮我一个例子吗?
我看了这里,但不太明白我应该做什么.
另外,如何从Main.java文件夹以外的其他文件夹中执行该命令?
例如,Main.java位于my/java/program/Main.java.我应该放什么
mvn exec:java -Dexec.mainClass="what to put here?" -Dexec.args="arg0 arg1 arg2"
Run Code Online (Sandbox Code Playgroud) 最终在下面的代码之间有什么不同.将参数声明为final是否有任何优势.
public String changeTimezone( Timestamp stamp, Timezone fTz, Timezone toTz){
return ....
}
public String changeTimezone(final Timestamp stamp, final Timezone fTz,
final Timezone toTz){
return ....
}
Run Code Online (Sandbox Code Playgroud) Python是我的第一个动态语言.我最近编写了一个函数调用错误地提供了错误数量的参数.这在调用函数时发生异常失败.我期望即使在动态语言中,也可以在解析源文件时检测到这种错误.
我知道在调用函数之前不知道实际参数的类型,因为同一个变量可能包含不同时间的任何类型的值.但是一旦解析了源文件,就会知道参数的数量.程序运行时不会改变.
为了将其保持在Stack Overflow的范围内,让我说出这样的问题.Python提供了一些功能,它要求它延迟检查函数调用中的参数数量,直到代码实际执行为止?
我正在寻找命令行参数解析器,例如来自http://www.sellsbrothers.com/tools/Genghis/的 "命令行解析器" .
我正在寻找的功能:
PS: "命令行解析器"非常好,我真的很喜欢它的设计,但没有文档,没有新的更新,我无法弄清楚做某些事情,如如何检查所需的参数.
我将此脚本保存在"test.vbs"中:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile(workFolder &"\test.txt", 2, True)
File.Write "testing"
File.Close
Set File = Nothing
Set FSO = Nothing
Set workFolder = NothingRun Code Online (Sandbox Code Playgroud)
当我运行脚本时,我想传递"workFolder"变量的值.
我怎样才能做到这一点?我可以做吗?像"cscript test.vbs workFolder:'C:\ temp \'"之类的东西?
额外问题:是否需要使用"Set workFolder = Nothing"清理传递的变量,或者VBSCript在终止时自动执行此操作?也许"Set File = Nothing"和"Set FSO = Nothing"也是不必要的?如果您知道这两个问题的答案,请告诉我.
以下面的代码为例:
phpinfo(INFO_MODULES | INFO_ENVIRONMENT | INFO_VARIABLES);
Run Code Online (Sandbox Code Playgroud)
正在使用单个参数,但我提供了由单个管道符号分隔的选项列表.
先感谢您.
我可以更改Python脚本的有效进程名称吗?当我获得系统进程列表时,我想显示一个不同的名称而不是进程的真实名称.在CI中可以设置
strcpy(argv[0],"othername");
Run Code Online (Sandbox Code Playgroud)
但在Python中
argv[0] = "othername"
Run Code Online (Sandbox Code Playgroud)
似乎不起作用.当我获得进程列表(ps ax在我的linux框中)时,真实姓名不会改变.如果存在,我更喜欢便携式解决方案(或者一个用于posix的解决方案和另一个用于Windows环境的解决方案).
提前致谢
在Python中我有一个模块 myModule.py,我在其中定义了一些函数和一个main(),它接受一些命令行参数.
我通常从bash脚本中调用main().现在,我想将所有内容放入一个小包中,所以我想也许我可以将我的简单bash脚本转换为Python脚本并将其放入包中.
那么,我如何从 MyFormerBashScript.py 的main()函数实际调用 myModule.py 的main()函数?我甚至可以这样做吗?我如何传递任何参数?