python代码在独立函数中运行,但不作为类的一部分运行

2024-09-28 03:12:45 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3.3.5中,我使用一些作为独立函数工作的代码来构建一个类,但是当类版本运行时,它会中止而没有错误消息。它依赖于作为pyd分发的第三方包pcFastDB。在

unit1.py
import sys
import pcFastDB as p3

def get_context():
    return p3.pcContext.create()

def get_DB(ctx, dbName):
    return p3.pcDB.open(ctx, dbName)
.. more..

可用作:

^{pr2}$

但是

Unit2.py
import pcFastDB as p3
class DBOperation(object):
    def __init__(self, DB_name):
        '''
        Get the context, open the database and fill a channel list
        '''
        self.ctx = p3.pcContext.create()
        print('Context ' + str(self.ctx ))
        print(' - opening ' + DB_name)
        self.db = p3.pcDB.open(self.ctx, DB_name)  #aborts here
        print('DB opened successfully...' +str(self.db))

当我试图打开数据库时,会自动中止。在

db = DBOperation('tester')

testerdb存在,并且在我运行它的项目文件夹中。在

没有异常,没有错误,它只是停止执行。PyDev不太喜欢pyd文件。我不了解任何代码,所以调试有点神秘,但是在IPython3中我可以看到所有的函数和类成员,所以我知道它没问题。不幸的是,IPython3中的调试对我来说是一个深不可测的谜。在

不管怎样,我知道我调用了正确的函数,而且我知道函数是有效的,因为它在Unit1中工作得很好,只是它作为类成员不起作用。这有可能吗?在

我已经将DB行从init中分离出来并分别调用它们,我将ctx从类中分离出来并传递给函数,但这也不起作用。当从PyDev、IPython3或命令行中运行时,它的行为是相同的。在

有什么想法吗?在


Tags: 函数代码nameimportselfdbdef错误
1条回答
网友
1楼 · 发布于 2024-09-28 03:12:45

谢谢大家,我基本上是把相同的代码重写到一个新的模块中。文件本身似乎有点奇怪。我在责怪皮德夫。在

马克

相关问题 更多 >

    热门问题