问题:这段代码的方法定义那段如何理解?
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:34 编辑
力扣题解的代码不能直接运行,在代码前添加一句:
from typing import List
: 和 -> 就相当于注释,说明参数或函数返回值的类型 本帖最后由 Twilight6 于 2020-8-2 17:36 编辑
这里实际上这里只是类似注释一样,告诉你这些参数应该填入的类型,
函数 twoSum(self, nums:List, target:int) -> List: 中的:
nums:List 告诉我们 nums 这个参数应该填入的是一个 整型类的列表
target:int 告诉我们 target 参数填入的是一个整型
-> List: 告诉你twoSum 函数返回值应该是一个整型列表
并不影响正常代码运行,如果你想在自己编辑器运行代码,方法见楼上
Twilight6 发表于 2020-8-2 17:32
这里实际上这里只是类似注释一样,告诉你这些参数应该填入的类型,
函数 twoSum(self, nums:List, ...
我实例化后,s.twoSum(, 9)还提示我缺少target参数 本帖最后由 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:54 编辑
Twilight6 发表于 2020-8-2 17:32
这里实际上这里只是类似注释一样,告诉你这些参数应该填入的类型,
函数 twoSum(self, nums:List, ...
这里注释有没有对代码 也没有影响把,或者在语句结束用#来注释也是一样的奥。
像上面题目那样的注释有什么好处吗?
还是i说用了这个模块的类型检查,输出输入必须是注释的类型 白白白白丶白 发表于 2020-8-3 09:52
这里注释有没有对代码 也没有影响把,或者在语句结束用#来注释也是一样的奥。
像上面题目那样的注释 ...
和普通注释没有太大区别,也不会规定你必须输入注释类型
页:
[1]