白白白白丶白 发表于 2020-8-2 17:29:14

问题:这段代码的方法定义那段如何理解?

class Solution():
    def twoSum(self, nums:List, target:int) -> List:
      hashmap = {}
      for index , num in enumerate(nums):
            hashmap = index
      for i in num in enumerate(nums):
            j = hashmap.get(target - num)
            if j is not None and i != j:
                return


定义方法的这段怎么理解,为什么可以这样写,我把答案全复制直接运行是’List‘ is not defined

zltzlt 发表于 2020-8-2 17:29:56

本帖最后由 zltzlt 于 2020-8-2 17:34 编辑

力扣题解的代码不能直接运行,在代码前添加一句:

from typing import List

: 和 -> 就相当于注释,说明参数或函数返回值的类型

Twilight6 发表于 2020-8-2 17:32:32

本帖最后由 Twilight6 于 2020-8-2 17:36 编辑




这里实际上这里只是类似注释一样,告诉你这些参数应该填入的类型,

函数 twoSum(self, nums:List, target:int) -> List: 中的:

nums:List 告诉我们 nums 这个参数应该填入的是一个 整型类的列表

target:int 告诉我们 target 参数填入的是一个整型

-> List: 告诉你twoSum 函数返回值应该是一个整型列表

并不影响正常代码运行,如果你想在自己编辑器运行代码,方法见楼上


白白白白丶白 发表于 2020-8-2 17:51:27

Twilight6 发表于 2020-8-2 17:32
这里实际上这里只是类似注释一样,告诉你这些参数应该填入的类型,

函数 twoSum(self, nums:List, ...

我实例化后,s.twoSum(, 9)还提示我缺少target参数

Twilight6 发表于 2020-8-2 17:53:40

本帖最后由 Twilight6 于 2020-8-2 17:56 编辑

白白白白丶白 发表于 2020-8-2 17:51
我实例化后,s.twoSum(, 9)还提示我缺少target参数




我这里正常运行,只是这里代码错了:for i in num in enumerate(nums):

from typing import List

class Solution():
    def twoSum(self, nums:List, target:int) -> List:
      hashmap = {}
      for index , num in enumerate(nums):
            hashmap = index
      for i in num in enumerate(nums):
            j = hashmap.get(target - num)
            if j is not None and i != j:
                return
s = Solution()
s.twoSum(, 9)

改成这样试试看:

from typing import List

class Solution():
    def twoSum(self, nums:List, target:int) -> List:
      hashmap = {}
      for index , num in enumerate(nums):
            hashmap = index
      for i,num in enumerate(nums):
            j = hashmap.get(target - num)
            if j is not None and i != j:
                return
s = Solution()
print(s.twoSum(, 9))

返回:




白白白白丶白 发表于 2020-8-3 09:52:11

本帖最后由 白白白白丶白 于 2020-8-3 09:54 编辑

Twilight6 发表于 2020-8-2 17:32
这里实际上这里只是类似注释一样,告诉你这些参数应该填入的类型,

函数 twoSum(self, nums:List, ...

这里注释有没有对代码 也没有影响把,或者在语句结束用#来注释也是一样的奥。

像上面题目那样的注释有什么好处吗?

还是i说用了这个模块的类型检查,输出输入必须是注释的类型

Twilight6 发表于 2020-8-3 12:06:14

白白白白丶白 发表于 2020-8-3 09:52
这里注释有没有对代码 也没有影响把,或者在语句结束用#来注释也是一样的奥。

像上面题目那样的注释 ...


和普通注释没有太大区别,也不会规定你必须输入注释类型
页: [1]
查看完整版本: 问题:这段代码的方法定义那段如何理解?