Python2 这种情况下如何做版本检查?(语法不兼容)

2015-12-21 01:10:00 +08:00
 Grenadn

含有如下的代码:

def foo(a, *, k=v):
    pass

在 python2 运行时会因为星号出现语法错误,所以没法运行版本检查代码

if sys.version_info < (3, 0):
    sys.stderr.write('ERROR: Python 3.0 or newer version is required.\n')
    sys.exit(1)

thus ……
没有办法提示版本错误?

2382 次点击
所在节点    Python
5 条回复
sivacohan
2015-12-21 01:24:41 +08:00
把这个检查放在文件的最上面。
yelite
2015-12-21 01:49:45 +08:00
分两个文件,检查完了再 import
Grenadn
2015-12-21 12:10:34 +08:00
@sivacohan 解释器错误不给运行放哪也没用
@yelite 只能这样了把,好麻烦
pc10201
2015-12-22 20:58:47 +08:00
应该像下面这样写吧?
*或**应该放到最后面
def foo(a, k=v, *):
pass
qnnnnez
2015-12-30 18:59:33 +08:00
可以把 def 放到 if 里面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/244949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX