【发布时间】:2025-12-31 11:40:12
【问题描述】:
我有一个执行某些操作的 python 文件。它从 .pyc 文件中调用方法,如下所示。
someFile.py
# do something
from EvaluateT.read_input_data import *
print "imported"
# do something
inputData = ReadInputData(someInputFile)
print "read"
# do something
当我调用解释器并输入以下语句时,
import read_input_data
help (read_input_data)
我看到以下输出:
CLASSES
ReadInputData
class ReadInputData
| Methods defined here:
|
| __init__(self, inputFile)
|
| read_input_data(self)
但是,当我运行 someFile.py 时,输出会打印“imported”并忽略“inputData = ReadInputData(someInputFile)”语句之后的所有内容。 为什么这个声明失败了?我做错了什么?
【问题讨论】:
-
我怀疑这与 Python 字节码缓存文件有关。
read_input_file是什么,read_input_data有什么(注意,两个不同的名字!) -
@MartijnPieters:这是一个错字。我刚刚修好了。我导入了 read_input_data.pyc 但不幸的是无法访问其中的方法。知道出了什么问题吗?
-
print语句后跟缩进,在 import 语句之后? -
@anmol_uppal:修复它。 'inputData = ReadInputData(someInputFile)' 之后的所有语句都被忽略
-
@ChaitraRaghunath:如果代码挂在
ReadInputData(someInputFile)上,那么我们所能做的就是猜测。某些原因导致ReadInputData.__init__()不返回。没有源代码,我们无能为力。