我不敢相信这实际上是一个问题,但我一直在尝试调试这个错误而且我无处可去。 我确定我错过了一些非常简单的东西,因为这看起来很傻。

import Experiences, Places, Countries
class Experience(object):

    def make_place(self, place):
        addr = place["address"]
        addr = Places.ttypes.Address(addr["street"], addr["city"], addr["state"], Countries.ttypes._NAMES_TO_VALUES[addr["country"]], addr["zipcode"])
        ll = Geocoder.geocode(addr["street"]+", "+addr["city"]+", "+addr["state"]+" "+addr["zipcode"])
        place["location"] = Places.ttypes.Location(ll[0].coordinates[0], ll[0].coordinates[1])

    def __init__(self, exp_dict):
        exp_dict["datetimeInterval"] = Experiences.ttypes.DateTimeInterval(remove(exp_dict, "startTime"), remove(exp_dict, "endTime"))
        exp_dict["type"] = Experiences.ttypes.ExperienceType.OPEN
        exp_dict["place"] = self.make_place(exp_dict["place"])
        self.obj = Experiences.ttypes.Experience(**exp_dict)

@client.request
@client.catchClientException
def addExperience(thrift, access_token, exp_dict):
    experience = Experience(exp_dict)
    return thrift.client.addExperience(thrift.CLIENT_KEY, access_token, experience.obj)

(对应于addExperience的两个装饰器是因为它是在声明其类的文件之外定义的。)

我得到的错误是:

experience = Experience(exp_dict)
TypeError: object() takes no parameters

所以这对我没有任何意义,因为我明确地声明了init函数的第二个参数。 任何帮助都是极好的!

Traceback (most recent call last):
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/phil/Hangify/hy-frontend-server/env/lib/python2.7/site-    packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/phil/Hangify/hy-frontend-server/hangify/session.py", line 22, in check_login
    return f()
  File "/Users/phil/Hangify/hy-frontend-server/hangify/handlers/create.py", line 31, in Handle
    res = exp.addExperience(hangify.thrift_interface, access_token, experience)
  File "/Users/phil/Hangify/hy-frontend-server/hangify/client/__init__.py", line 22, in decorator
    obj = func(client, *args, **kwargs)
  File "/Users/phil/Hangify/hy-frontend-server/hangify/client/__init__.py", line 30, in decorator
    return func(*args, **kwargs)
  File "/Users/phil/Hangify/hy-frontend-server/hangify/client/exp.py", line 39, in addExperience
    experience = Experience(exp_dict)
TypeError: object() takes no parameters

这是Experience.mro() - 它表示类体验的正确模块位置:

[<class 'hangify.client.exp.Experience'>, <type 'object'>]

这是dir(经验):

 ['__class__', '__delattr__', '__dict__', '__doc__', '__format__',
 '__getattribute__', '__hash__', '__init__', '__module__', '__new__',
 '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
 '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'make_place']

===============>>#1 票数:64 已采纳

你混合了标签和空格。 __init__实际上是嵌套在另一个方法中的,所以你的类没有自己的__init__方法,而是继承了object.__init__ 在记事本中打开您的代码而不是您正在使用的任何编辑器,您将看到您的代码,因为Python的选项卡处理规则可以看到它。

这就是为什么你不应该混合标签和空格。 坚持一个或另一个。 建议使用空格。

===============>>#2 票数:39

关于这一点,我挣扎了一段时间。 __init__愚蠢规则。 它是两个“_”一起成为“__”

===============>>#3 票数:22

我也得到了这个错误。 顺便说一句,我键入__int__而不是__init__

我认为,在许多错误的情况下,我使用的IDE(IntelliJ)会将颜色更改为功能定义的默认设置。 但是,在我的情况下__int__是另一种dunder / magic方法,颜色与IDE为__init__ (默认的预定义项目定义颜色)显示的颜色保持相同,这花了我一些时间来发现丢失的i

===============>>#4 票数:9

您必须每次按两次并按( _ )键,它必须如下所示:

__init__

  ask by eatonphil translate from so

未解决问题?本站智能推荐:

3回复

Python Class()没有参数错误。 我正在使用Self [关闭]

关闭。 这个问题是题外话。 它当前不接受答案。 了解更多 。 想改善这个问题吗? 更新问
2回复

Python:函数错误[关闭]

所以我有一个叫做LoopingSpace的函数。 它没有参数 每当它被调用。 它将打印三个空白行。 例如; 如果我输入 它将很好地输出 但是,当您将此函数放入庞大的语法中时。 它引发了此错误。 注意:我使用在线执行器注意:在线执行器分别使用2.7.
1回复

提升python参数错误

我只是如下定义一个函数,然后使用boost.python将其导出到python。 我怀疑python中[File * local_conf]的对应类型是什么。
4回复

Python中的参数错误

所以我在python中有一行代码,不断出现错误。 代码行: 第1行只是import random 错误: 我该如何解决? 我没有看到任何参数???
2回复

python:object()没有参数错误

我正在尝试在python2.7中创建一个enum类。 我的代码如下所示: from enum import Enum class Alarms(Enum): MOTION = "Motion", 0, False SOUND = "Sound", 1, False
1回复

Python ctypes参数错误

我在C ++中编写了一个测试dll,以确保在开始使用我需要的更重要的dll之前工作正常。 基本上它需要两个双打并添加它们,然后返回结果。 我一直在玩,其他测试函数我已经恢复工作,我只是因为错误而无法传递参数。 我的代码是: 它返回名为“func”的行的错误: 我究竟做错了什
1回复

Python字典参数错误

我实际上是为Raspberry Pi的GPIO端口编写一个控制程序,我用python进行编程,并希望使用字典来完成。 好的,要设置一个GPIO端口,它需要2个参数,正如您在字典表中看到的那样,我使用了两个参数,当您编写“ 00”之类的东西时应该获得该参数。 例如,能够控制GPIO端口
1回复

Python多线程参数错误

我刚刚开始使用多线程,所以我想让自己成为一个小而简单的示例: 效果很好,并打印出以下内容: 但是,奇怪的是,当我想将参数更改为另一个变量时:“ john”: 线程1 = threading.Thread(target = count,args =('john')) 希
1回复

Python类参数错误

我正在创建菜单,但是遇到错误,我需要一些帮助,因为我不知道什么是错误的或如何解决它,这段代码说我在输入参数,但是我没有输入参数。 请帮助,这是最近一次调用的追溯错误,在我运行脚本时在控制台中发生
1回复

参数错误

因此,我定义了一个名为change(a,d)的函数change(a,d)该函数计算给定面额d的金额变化。 我也有一些参数:a必须为int类型,d必须为int类型列表,并且d的元素必须按升序排列,否则引发ChangeParameterError。 我的代码如下: 就目前而言,它应该为测