首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python的基本用法,调用函数

python的基本用法,调用函数
EN

Stack Overflow用户
提问于 2016-10-11 07:12:09
回答 2查看 59关注 0票数 0

我正在编写leetcode,但实际上以前从未在本地编写过文件。

代码语言:javascript
运行
复制
class Solution(object):
    def singleNumber(self, nums):

        for i in range(0,len(nums),2):
            if (i != len(nums) - 1) and (nums[i] != nums[i+1]):
                print (nums[i])
            elif i == len(nums) - 1:
                print (nums[i])

    def main():
        nums=[1,1,2,2,3]
        s=Solution()
        s.singleNumber(nums)
        print('done')

我正在运行这个脚本,但是看不到任何输出,也不明白我做错了什么。

EN

回答 2

Stack Overflow用户

发布于 2016-10-11 07:15:37

将您的函数移到类之外,然后专门执行它:

代码语言:javascript
运行
复制
class Solution(object):
    def singleNumber(self, nums):

        for i in range(0,len(nums),2):
            if (i != len(nums) - 1) and (nums[i] != nums[i+1]):
                print (nums[i])
            elif i == len(nums) - 1:
                print (nums[i])

def main():
    nums=[1,1,2,2,3]
    s=Solution()
    s.singleNumber(nums)
    print('done')

main()

输出:

代码语言:javascript
运行
复制
3
done

另一种可能是使它成为一个单独的函数:删除def主行,取消该代码的四行缩进,并从顶层运行它。

票数 2
EN

Stack Overflow用户

发布于 2016-10-11 07:25:09

与许多其他编程语言不同,Python不要求类中有main方法。此外,Python 不需要将 main 方法定义为:它将整个文件作为一个应用程序运行。在你最初的帖子中,Python执行以下操作:

  • 将方法singleNumber定义为它保存的代码,将方法main定义为它保存的代码。
  • 将这两个方法保存在类Solution.
  • No中,以便运行更多行,因此结束application.

要使应用程序正确,必须按如下方式编写:

代码语言:javascript
运行
复制
class Solution(object):
    def singleNumber(self, nums):
        for i in range(0,len(nums),2):
            if (i != len(nums) - 1) and (nums[i] != nums[i+1]):
                print (nums[i])
            elif i == len(nums) - 1:
                print (nums[i])

if __name__=='__main__':
    nums=[1,1,2,2,3]
    s=Solution()
    s.singleNumber(nums)
    print('done')

您可能想知道为什么行if __name__=='__main__':;每个文件都包含隐式定义的变量__name__,它的值取决于您是直接运行文件还是导入文件。在第一种情况下,赋值__name__='__main__'已经完成,在第二种情况下,__name__变量被赋予文件本身的名称;这让您了解该文件是否是主文件。

您还可以丢弃Solution类并将singleNumber方法提升为模块方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39968122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档