python从模块

时间:2015-11-25 14:29:50

标签: python dictionary

我正在尝试从模块返回一个字典,但无论在Windows 7上的Python2.7上是什么,字典都会返回为空。例如:

test_dict.py

def get_dict():
    dictiom = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    print dictiom['Name']
    return dictiom['Name']

if __name__ == '__main__':
    get_dict()

get_dict.py

import test_dict

dict_test = test_dict.get_dict()
print dict_test

独立运行test_dict.py,print语句返回

Zara

从get_dict.py调用dict打印

{}

这是一个简化的例子,但对于我尝试过的其他测试也是如此。

更新以更改我的示例错误。

好的,所以这是我实际代码的问题部分

Search.py​​

from Bio import Entrez


def search(query):

    Entrez.email = 'me@example.com'
    handle = Entrez.esearch(db='pubmed',
                        sort='relevance',
                        retmax='50',
                        retmode='xml',
                        term=query)
    results = Entrez.read(handle)
    return results

main.py

import Search

query = 'cancer'
results = Search.search(query)
print(results)

结果是一个空的字典,但无法解决原因。但是运行Search.py​​本身就可以了。

2 个答案:

答案 0 :(得分:5)

为您的功能添加不同的名称!
dict是内置功能。<​​/ p>

<强> test_dict.py

def get_dict():
    dictiom = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    return dictiom #I think you want to return the whole dict?

if __name__ == '__main__':
    print get_dict() # print the dict as a test 

然后你可以这样做

<强> main.py

import test_dict

dict_test = test_dict.get_dict()
print dict_test

答案 1 :(得分:-1)

如果您使用

import test_dict

然后你必须打电话

test_dict.dict()

如果您使用

from test_dict import dict

然后你可以打电话

dict()

编辑:

您可以使用

from test_dict import dict as my_dict

并致电

my_dict()

以防止与原始dict()

发生冲突