如何在程序中调用Python中的类

以下代码在调用时读取类外部的值会引发错误。我做不到!


nums = [2,7,11,15], target = 9


class Solution(object):

    def twoSum(self, nums, target):

        d = {}

        for i, n in enumerate(nums):

            m = target - n

            if m in d:

                return [d[m], i]

            else:

                d[n] = i

Error:

    nums = [2,7,11,15], target = 9

           ^

SyntaxError: cannot assign to literal

如何在类外读取nums和target的值?请解释。我无法弄清楚。


只有当我这样做时它才有效。


if __name__ == '__main__':

     s = Solution()

     print (s.twoSum([2,7,11,15], 9))

为什么不反过来 -> nums = [2,7,11,15], target = 9


智慧大石
浏览 72回答 3
3回答

德玛西亚99

没什么复杂的,只是基本语法。nums, target = [2,7,11,15], 9

阿波罗的战车

您应该只在单独的行上分配值。 nums = [2,7,11,15], target = 9正在尝试将 9 分配给 nums 并尝试将 9 分配给您的列表和目标。“无法分配给文字”是因为它尝试将值 9 分配给列表。如果您替换列表中的变量,则会失败,因为单个值 9 无法解压缩为两个变量。

蝴蝶刀刀

由于语法部分是由其他人处理的,如果您想在类中使用 nums 和 target,请从类方法定义中删除参数 nums 和 target,如下所示:nums = [2,7,11,15]target = 9class Solution(object):    def twoSum(self): # here is the change        d = {}        for i, n in enumerate(nums):            m = target - n            if m in d:                return [d[m], i]            else:                d[n] = iif __name__ == '__main__':     s = Solution()     print (s.twoSum())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python