我正在编写一个简单的Python脚本来导出,导入和区分数据库.我想让用户提供他们想要运行脚本的"模式",我选择import,export和diff作为我的选项.当我通过argparse运行它时,所有解析的选项都以args结尾,我可以使用arg.export或args.diff访问它们,但由于"import"是一个关键字,我遇到了问题.
我可以做一些改变的工作,让它工作,但我想知道是否可以保留我拥有的东西.例如,我可以将选项缩短为"exp","imp"和"diff",或者我可以做一个名为"mode"的选项,希望传入"import","export"或"diff".
我目前的代码:
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("--export", help="Export source(s)", action="store_true")
group.add_argument("--import", help="Import source(s)", action="store_true")
group.add_argument("--diff", help="Diff sources", action="store_true")
parser.add_argument("filename", help="XML Filename used for exporting to, importing from or comparing while doing diff.")
args = parser.parse_args()
if args.export:
export_sources(args.filename)
elif args.import:
import_sources(args.filename)
elif args.diff:
diff_sources(args.filename)
Run Code Online (Sandbox Code Playgroud) 我有一个extjs网格面板设置,我希望能够根据用户点击网格中的文本或图标来做事情.例如,如果用户单击(或双击)列中的单词,则过滤网格,或者如果用户单击图标,则显示弹出窗口.我可以很容易地获取他们点击的行,并按该行的列名称输入值,但我不知道单击了哪一列.
或者,我可以将onClick添加到整个网格,然后我可以从行/列中获取单个文本,但我不知道该值属于哪个行索引或列.我可以添加一个CSS类来告诉我一个列名,但这似乎是一个黑客.
有什么内置可以做到这一点?
我正在将一些代码从Perl移植到Python,我正在移动的一个函数执行以下操作:
sub _Run($verbose, $cmd, $other_stuff...)
{
...
}
sub Run
{
_Run(1, @_);
}
sub RunSilent
{
_Run(0, @_);
}
Run Code Online (Sandbox Code Playgroud)
所以要做Python,我天真地认为我可以做到以下几点:
def _Run(verbose, cmd, other_stuff...)
...
def Run(*args)
return _Run(True, args);
def RunSilent
return _Run(False, args);
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为args作为数组/元组传递.为了使它工作,我做了以下事情:
def _Run(verbose, cmd, other_stuff...)
...
def Run(*args)
return _Run(True, ','.join(args));
def RunSilent
return _Run(False, ','.join(args));
Run Code Online (Sandbox Code Playgroud)
但那看起来很丑陋.有没有更好的办法?