【发布时间】:2015-08-26 16:09:11
【问题描述】:
问题:我正在尝试调试 class 中的一个函数,以确保实现了一个列表,如果没有,我希望抛出一个错误。我是编程新手,我试图弄清楚如何有效地添加assert 用于上述调试目的。
在 class BaseAPI() 的方法主体中,我必须遍历列表并为 ConvenienceAPI(BaseAPI) 中的每个项目调用 retrieve_category,将新列表传递给您的 super()。我认为我做错了什么,因为我得到了错误:TypeError: create_assessment() got an unexpected keyword argument 'category'
问题 2
我还希望category 有一个包含多个类别(字符串)的列表。这不是现在发生的。方法中的列表没有被迭代或创建。我不确定...请参阅下面的回溯错误。
代码
实例化categories的列表:
api = BaseAPI()
api.create_assessment('Situation Awareness', 'Developing better skills', 'baseball', 'this is a video','selecting and communicating options', category=['Leadership', 'Decision-Making', 'Situation Awareness', 'Teamwork and Communication'])
assert 和 create 所在的 BaseAPI() 方法
class BaseAPI(object):
def create_assessment(self, name, text, user, video, element, category):
category = [] # Trying to check if category isn't a list
assert category, 'Category is not a list'
new_assessment = Assessment(name, text, user, video, element, category)
self.session.add(new_assessment)
self.session.commit()
NEW ADD 迭代列表,但仍给出 Error!
class ConvenienceAPI(BaseAPI):
def create_assessment(self, name, text, username, videoname, element_text, category_name):
user = self.retrieve_user(username)
video = self.retrieve_video(videoname)
element = self.retrieve_element(element_text)
categories = self.retrieve_category(category_name)
for items in categories: # < ==== added
return categories # < ==== added
return super(ConvenienceAPI, self).create_assessment(name, text, user, video, element, categories)
表格
class Assessment(Base):
__tablename__ = 'assessments'
#some code
category_id = Column(Integer, ForeignKey('categories.category_id'))
category = relationship('AssessmentCategoryLink', backref='assessments')
def __init__(self, name, text, user, video, element, category): # OBJECTS !!
#some code
self.category = []
TracebackError
ERROR: db.test.test.test1
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/Users/ack/code/venv/NotssDB/notssdb/test/test.py", line 69, in test1
api.create_assessment('Situation Awareness', 'Developing better skills', 'baseball', 'this is a video','selecting and communicating options', category=['Leadership', 'Decision-Making', 'Situation Awareness', 'Teamwork and Communication'])
TypeError: create_assessment() got an unexpected keyword argument 'category'
【问题讨论】:
-
你能发布完整的回溯吗?
-
@AnandSKumar 添加了!
-
你可以试试打印 -
print(type(api))吗?
标签: python function oop sqlalchemy assert