2015-10-14 36 views
0

所以我寫了我的第一個python腳本(test.py),現在我要撥打的文檔字符串爲控制檯上的功能測試1,但沒有運氣如何調用從腳本文件中的註釋部分,在控制檯上

我的腳本:

import os 
os.system('cls') 
def test1 (a , b): 
    """ 
    Learning Python to make a better world 
    This is my first program 
    """ 
    c = a+b 
    print (c) 

test1(1,2) 
print (test1.__doc__) 

但是,當我輸入在控制檯上的腳本,這是我所得到的

C:\Python34\python.exe 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] 
import test 
print(test1.__doc__) 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
NameError: name 'test1' is not defined 
print(test.test1.__doc__) 
Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'test1' 

不知道我在做什麼錯在這裏,一定有什麼非常基本的。

+0

如果python腳本文件被命名爲'test.py',您可以嘗試'從test import test1'而不是'import test' –

+0

您必須進一步調試。嘗試調用test .__ dict__來查看測試的內容。你打電話錯了嗎?檢查'test.py'是否在您的python安裝所在的目錄中。您可能正在調用錯誤的文件。如果您爲所有用戶安裝,則此目錄通常是C:/ Python34,因爲您使用的是Python 3.4。否則,請在您的計算機上搜索Python34文件夾。 – 2015-10-14 22:21:52

+0

@JoseRicardoBustosM。我想這兩個選項,這裏是從測試導入TEST1 回溯(最近通話最後一個)結果 : 文件「」,1號線,在 導入錯誤:無法從test.py進口test1的導入名「test1的」 回溯(最近通話最後一個): 文件 「」,1號線,在 文件「C:\用戶\ PC \ .p2 \池\插件\ org.python.pydev_4.4.0.201510052309 \ pysrc \ pydev_import_hook .py「,第21行,在do_import中 module = self._system_import(name,* args,** kwargs) ImportError:沒有名爲'test.py'的模塊 – Fenomatik

回答

1

Python3有一個test模塊,僅供內部使用。參考:https://docs.python.org/3.4/library/test.html

因此,如果您將腳本保存到名爲test.py的文件中,導入該腳本的唯一方法是在與test.py腳本相同的目錄上運行python控制檯。只需將您的文件名更改爲mytest.py並執行import mytestprint(mytest.test1.__doc__)以避免問題。

+0

現在我已更改爲firstscript.py的名字,但現在當我嘗試導入它,我得到一個錯誤 進口firstscript 回溯(最近通話最後一個): 文件「」,1號線,在 文件「 C:\ Users \ PC \ .p2 \ pool \ plugins \ org.python.pydev_4.4.0.201510052309 \ pysrc \ pydev_import_hook.py「,第21行,在do_import中 module = self._system_import(name,* args,** kwargs) ImportError:沒有名爲'firstscript'的模塊 我的腳本文件的路徑是/test/firstscript.py,有沒有特殊的方法可以在不同的位置調用腳本? – Fenomatik

+0

您可以執行腳本並讓它打印內容。如果你想首先打開控制檯,你或者1.與腳本位於同一個目錄下,或者2.在測試文件夾內創建一個空的'__init __。py',並在父級打開控制檯測試文件夾或3.使測試文件夾成爲步驟2中的軟件包,並將PYTHONPATH設置爲包含測試文件夾的文件夾,並且您可以從任何位置導入軟件包。只要記住有一個叫做「測試」的軟件包或模塊的問題。你寧願問另一個關於設置路徑的問題 – dopstar

+0

我試圖改變控制檯中的路徑,但是這不起作用 os.chdir(「C:\ Users \ PC \ workspace \ myscript」) 文件「」,第1行 SyntaxError:(unicode錯誤)'unicodeescape'編解碼器無法解碼位置2-3中的字節:截斷\ UXXXXXXXX轉義 – Fenomatik

1

您肯定導入了一些test模塊,它們位於由其他Python包安裝的真正Python中,而不是您的test.py。在這個簡單的例子,你需要從同一個目錄下運行pythontest.py並驗證test模塊實際上是進口,如果進口相對它應該是這樣的:

>>> import test 
>>> print(test) 
<module 'test' from 'test.pyc'> 

否則它會顯示是這樣的:

>>> import test 
>>> print(test) 
<module 'test' from '/usr/lib/python3.4/test/__init__.py'> 

最佳實踐是,不要用test.py命名您的隨機模塊,爲單元/功能測試預留該模塊。

相關問題