2011-12-12 116 views
-6

我不知道如何将我的简单功能添加到我的主程序文件。为什么不 ?从模块访问功能

当我这样做:

import print_text 

echothis("this is text") 
exit() 

无法理解为什么人们认为这是这样一个坏的问题。

这并不工作之一:如果键入以下任何答案

print_text.echothis("this is text") 

同样的事情发生。 包括:

from print_text import echothis 

我刚刚得到这个错误:

from: can't read /var/mail/print_text 
./blah3.py: line 3: syntax error near unexpected token `"this is text"' 
./blah3.py: line 3: `print_text.echothis("this is text")' 

或没有在/ var /邮件线变体...

*此文件被命名为print_text.py *

#!/usr/bin/env python 

import time 
import random 
import string 
import threading 
import sys 

def echothis(txt): 
    woo=txt 
    stdout.write(woo) 
+0

其实你应该得到一个错误,说'echothis'是不确定的。你的导入应该是'from print_text import echothis' –

+3

你用什么材料来学习python?这听起来像你应该得到更好的学习材料。 – Marcin

+0

我看不到线程对象正在创建的位置。也许你缺少的是实例化'print_text'类并为该对象调用'start'方法。 – jcollado

回答

1

编辑:你实际上没有ap ython的问题,但一个bash之一。你正在运行你的python脚本,因为它是bash(因此'from:无法读取'),你是否在你运行的文件的开头放了#!/usr/bin/env python(不是print_text.py,另一个) ?你也可以这样称呼它:python myfile.py它应该工作。



当导入模块,它被命名空间,所以如果你想使用任何来自该模块,您需要使用正确的命名空间来调用它。在这里,你会打电话给你echothis函数使用print_text.echothis

或者,如果要在主名称空间中包含echothis,则可以使用from print_text import echothis语法。

+0

这不工作。 – funk

+0

ohhhhhhhh,对。而已 !谢谢! :)) – funk

+0

大规模的DOH !!!! – funk

0

试试这个:

import print_text 

print_text.echothis("this is a text") 
+0

这也不起作用 – funk