首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python模块故障

Python模块故障
EN

Stack Overflow用户
提问于 2019-03-14 20:19:29
回答 1查看 78关注 0票数 0

我正在使用Python学习Cassandra对象映射器,我有下面的小程序来填充数据库表。这个很好..。

代码语言:javascript
复制
from cassandra.cqlengine.connection import setup
from cassandra.cqlengine.management import sync_table
from cassandra.cqlengine.models import Model
from cassandra.cqlengine import columns
from uuid import uuid4

##import Courses

class Courses(Model):
    id = columns.UUID(primary_key = True)
    title  = columns.Text()
    duration = columns.Integer()

setup(['chelly', ], 'objectlake', protocol_version = 3)

# Create some courses to inflict on our hapless trainees

courses = [
    { 'title' : "Conflict of Interest" , 'duration' : 120 },
    { 'title' : "Resolving Conflict" ,   'duration' : 60 },
    { 'title' : "Time Cards" ,           'duration' : 30 },
    { 'title' : "PTO" ,                  'duration' : 30 },
    { 'title' : "Managing Upwards" ,     'duration' : 120 }
]

sync_table(Courses)

for course in courses:
    Courses.create(id = uuid4(), title = course['title'], duration = course['duration'])

print('Done-ish?')

但是,如果我对课程类的定义进行注释并取消对导入的注释,请使用Courses.py中的如下内容:

代码语言:javascript
复制
from cassandra.cqlengine.models import Model
from cassandra.cqlengine import columns

class Courses(Model):
    id = columns.UUID(primary_key = True)
    title  = columns.Text()
    duration = columns.Integer()

我得到一个异常ValueError: Models must be derived from base Model.sync_table调用。我确信我已经把类的声明移到模块中了,但是找不到我做错了什么。我不知道为什么模块中的对象不是模型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-14 20:42:40

当您执行import Courses时,名称Courses将引用名为Courses的模块,而不是指恰好位于该模块内的类Courses

您使用的函数要求它的参数来自某个类,而且模块Courses显然不满足这个条件。

您可能打算像这样导入名为Courses的类:

代码语言:javascript
复制
from Courses import Courses
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55171312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档