【问题标题】:TypeError: object() takes no parameters while importing a class fileTypeError: object() 在导入类文件时不带参数
【发布时间】:2017-10-24 01:06:29
【问题描述】:

我正在尝试在另一个 python 文件中导入一个 python 类,但我不断收到错误“TypeError:object() 不带参数”,但是在同一个文件中写入时它可以工作

我已经尝试了以下

api.py

 from flask import Flask
 from flask_restful import Resource, Api
 from flask_restful import reqparse
 from flask import Flask, jsonify, request

 app = Flask(__name__)
 api = Api(app)

 class CreateUser(Resource):
     def post(self):
         try:
             parser = reqparse.RequestParser()
             parser.add_argument('email', type=str, help='Email address to create user')
             parser.add_argument('password', type=str, help='Password to create user')
             args = parser.parse_args()

             _userEmail = args['email']
             _userPassword = args['password']

             return {'Email': args['email'], 'Password': args['password']}

         except Exception as e:
             return {'error': str(e)}

main.py

from flask import Flask
import api as apii
from flask_restful import Resource, Api

CreateUser = apii.CreateUser(Resource)

app = apii.app
api = apii.api

api.add_resource(CreateUser, '/CreateUser')

if __name__ == '__main__':
    app.run(debug=True)

这是我得到的错误

Traceback (most recent call last):
 File "main.py", line 5, in <module>
CreateUser = apii.CreateUser(Resource)
 TypeError: object() takes no parameters

【问题讨论】:

  • CreateUser = apii.CreateUser()?

标签: python flask python-import


【解决方案1】:

你的类,CreateUser 没有参数。您只需在第一次创建类时将其父母放在括号中。当你想创建一个类的实例时,你只需调用这个类,在这种情况下它不带参数。以下内容应该适合您。

CreateUser = apii.CreateUser()

如果 CreateUser 类包含一个 def __init__(self, name)(例如)方法,该方法包含一个初始化参数 name- 那么这将反映在类的实例化上,并且看起来类似于以下内容:

x = CreateUser("JohnDoe")

【讨论】:

  • 我试过你给的,但它给出了错误“AttributeError:'CreateUser'对象没有属性'name'”
  • 这是一个例子,你的修复如上:CreateUser = apii.CreateUser()
  • @silent 它不工作我得到错误 Traceback (最近一次调用最后): File "main.py", line 10, in api.add_resource(CreateUser, '/CreateUser')文件“C:\Python27\lib\site-packages\flask_restful_init_.py”,第 404 行,在 add_resource self._register_view(self.app, resource, *urls, **kwargs) 文件中“ C:\Python27\lib\site-packages\flask_restful_init_.py",第 429 行,在 register_view endpoint = kwargs.pop('endpoint', None) 或 resource.__name_ i>.lower() AttributeError: 'CreateUser' 对象没有属性 'name'
  • 看起来库在某些时候试图访问您的 CreateUser 类中不存在的属性,name.. 您需要确保实现所有必要的属性和方法在您的 CreateUser 类中,以便 api 成功使用它。不幸的是,我不熟悉这个库,所以我不能告诉你具体需要实现什么
猜你喜欢
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 2019-07-05
  • 1970-01-01
相关资源
最近更新 更多