Python 第34行:TypeError:\uuuu init\uuuuuu()正好接受3个参数(给定1个)

Python 第34行:TypeError:\uuuu init\uuuuuu()正好接受3个参数(给定1个),python,Python,当我在pycharm中运行代码时,它是有效的。但是,当我将代码提交给leetcode时,它会警告运行时错误,请参见图片 这是一个leetcode服务问题 与使用标准IO完成测试驱动程序和程序之间的通信时的流行格式不同,此服务提供了另一种方式 在开头,您将看到一个隐式表示通信接口的代码段。您不应该更改它,即更改方法签名,包括构造函数签名。然后将输入作为参数传递给代码段方法,结果应为其方法返回值 它是如何工作的,以及产生奇怪错误的方式 您在在线编辑器中传递的代码被生成该行为的其他代码所激怒 为了验证

当我在pycharm中运行代码时,它是有效的。但是,当我将代码提交给leetcode时,它会警告运行时错误,请参见图片

这是一个leetcode服务问题 与使用标准IO完成测试驱动程序和程序之间的通信时的流行格式不同,此服务提供了另一种方式

在开头,您将看到一个隐式表示通信接口的代码段。您不应该更改它,即更改方法签名,包括构造函数签名。然后将输入作为参数传递给代码段方法,结果应为其方法返回值

它是如何工作的,以及产生奇怪错误的方式 您在在线编辑器中传递的代码被生成该行为的其他代码所激怒

为了验证这一观点,我编写了一个程序,通过修改给定的代码片段来打印自己的代码:

class Solution:
    def __init__(self, secret, guess):
        self.secret = secret
        self.guess = guess
    def getHint(self):
        right=0; wrong=0
        listSecret = list(self.secret)
        listGuess = list(self.guess)
        for i in range(len(listSecret)):
            if listSecret[i] == listGuess[i]:
                right = right + 1
            else:
                wrong = wrong + 1
        return str(right)+ "A" + str(wrong) + "B"
guessG = raw_input("")
secretS = raw_input("")
print Solution(str(guessG), str(secretS)).getHint()
在codeleet服务上执行的结果是

class Solution(object):
    def getHint(self, secret, guess):
        """
        :type secret: str
        :type guess: str
        :rtype: str
        """
        
import sys        
print sys.argv ## this prints program arguments

## argv[0] is the name of file being executed. Just print it!
with open(sys.argv[0], 'r') as fin:
    print fin.read()
这显示了正在执行的整个程序。正如您所注意到的,它是您自己代码的稍微扩展版本。该版本包含以下行:

['/usr/lib/gcc/x86_64-linux-gnu/4.9.1/.cache/prog_joined.py', '-recursion_limit', '8100']
# coding: utf-8
from precompiled.__serializer__ import __Serializer__
from precompiled.__deserializer__ import __Deserializer__
from precompiled.__utils__ import __Utils__
from precompiled.listnode import ListNode
from precompiled.interval import Interval
from precompiled.treenode import TreeNode
from precompiled.treelinknode import TreeLinkNode
from precompiled.undirectedgraphnode import UndirectedGraphNode
from precompiled.randomlistnode import RandomListNode
from precompiled.point import Point
import precompiled.__settings__
import array
import bisect
import collections
import copy
import heapq
import itertools
import math
import operator
import re
import sets
import string

# user submitted code insert below
class Solution(object):
    def getHint(self, secret, guess):
        """
        :type secret: str
        :type guess: str
        :rtype: str
        """
        
import sys        
print sys.argv

with open(sys.argv[0], 'r') as fin:
    print fin.read()
import sys
def _driver():
    SEPARATOR = "\x1b\x09\x1d"
    f = open("user.out", "w", 0)
    lines = __Utils__().read_lines()
    while True:
        try:
            line = lines.next()
            
            param_1 = __Deserializer__().to_string(line)
            line = lines.next()
            param_2 = __Deserializer__().to_string(line)
            
            ret = Solution().getHint(
                param_1, param_2
            )
            out = __Serializer__().serialize(ret)

            print >> f, "%s" % out
            sys.stdout.write(SEPARATOR)
        except StopIteration:
            break

if __name__ == '__main__':
    _driver()

它们是你问题的根源

你在图中只看到19行。@TimCastelijns我相信作者对此很好奇also@Lol4t0你能告诉我原因吗?不。只是猜测一下:传递给python的实际代码是你与smth else一起提供的代码的串联。你可能想在你的网站上重新阅读一些手册,但你不可能用这些代码得到那个错误。我发现这个答案不可能理解。你从哪里得到这个愤怒的代码的?打印程序代码意味着什么?@BryanOakley我们在这里讨论的是leetcode服务,正如问题所述。执行尝试打印到正在执行的控制台文件的第一个代码示例。如果在指定的服务上运行此服务,则会得到第二个服务中提供的代码sample@Lol4t0:啊,好的。你可能想在你的答案中添加一点澄清。
ret = Solution().getHint(
                    param_1, param_2
                )