Sublimitpyhaskelle试图编译scrithop

2024-05-19 10:08:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新手,请不要对我太苛刻。在

我正在尝试用Python设置Sublime文本(下学期)。在此之前,我在sublimitext中使用Haskell,我可以在Sublime中使用“ctrl+b”来运行skcript。在

当我用一个名为测试.py". 在

  def add(a,b):

      return a+b

  main = print(add(2,3))

我收到错误消息:

^{pr2}$

“顶层裸表达”部分看起来很熟悉,因为它非常特定于Haskell。事实上,当我在网上搜索这条信息时,它只会把我带到与Haskell相关的东西上。所以显然是Sublime或者编译器认为,我正在尝试运行一个Haskell脚本,尽管我将文件命名为~.py。在

对于那些不熟悉Haskell和Python的人: 通常可以通过以下方式运行脚本: Python:main=print(方法(x,y)) Haskell:main=打印(函数x y)

我使用的是Ubuntu 12.04。我做错什么了?非常感谢你的帮助。德克萨斯州


Tags: py文本脚本addreturnhaskellmaindef
1条回答
网友
1楼 · 发布于 2024-05-19 10:08:35

转到Tools -> Build System并确保选中Python。而且,这不是在Python中编写main的方式,它应该更像

def add(a, b):
    return a + b

def main():
    print(add(2, 3))

if __name__ == '__main__':
    main()

当你写作的时候

^{pr2}$

加载你的脚本,这一行就被执行了,因为这是一个赋值,如果我这样做的话,也差不多

a = 1

或者

a = print(add(2, 3))

Python中的名称main没有什么特别之处。您仍然可以看到您的输出,因为print有副作用,但是您没有定义{},而是在执行一个脚本。如果你想试试的话,差别就来了

add.py

def add(a, b):
    return a + b

main = print(add(2, 3))

subtract.py

from add import add

def subtract(a, b):
    return add(a, -b)

如果运行python subtract.py,即使subtract.py中没有定义main,您仍然可以看到{}打印到屏幕上。显然,这不是期望的行为,add.py中的main函数如果没有作为主脚本运行,就不应该执行它。当您直接以python scriptname.py的形式运行Python脚本时,有一个名为__name__的文件设置为全局变量,它被分配了字符串"__main__"。如果导入它,则__name__被设置为其限定模块名,类似于"scriptname"。这使您能够定义不同的行为,如果文件是执行的,如果文件是由另一个脚本导入的。在

相关问题 更多 >

    热门问题