为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

智慧大石 2023-10-05 16:29:43
以下代码在调用时读取类外部的值会引发错误。我做不到!nums = [2,7,11,15], target = 9class 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] = iError:    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
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

没什么复杂的,只是基本语法。

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



查看完整回答
反对 回复 2023-10-05
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

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



查看完整回答
反对 回复 2023-10-05
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

由于语法部分是由其他人处理的,如果您想在类中使用 nums 和 target,请从类方法定义中删除参数 nums 和 target,如下所示:


nums = [2,7,11,15]

target = 9


class 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] = i


if __name__ == '__main__':

     s = Solution()

     print (s.twoSum())


查看完整回答
反对 回复 2023-10-05
  • 3 回答
  • 0 关注
  • 64 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信