Доступ к функции из модуля - PullRequest
       20

Доступ к функции из модуля

0 голосов
/ 12 декабря 2011

Я не могу понять, как добавить свою простую функцию в основной файл программы. почему нет?

когда я делаю это:

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 / mail ...

* этот файл называется 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)

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

РЕДАКТИРОВАТЬ: На самом деле у вас проблема не с питоном, а с проблемой bash. Вы запускаете свой скрипт на Python, как если бы он был bash (отсюда и «from: not read from»), вы положили #!/usr/bin/env python в начало файла, который вы запускаете (не print_text.py, другой )? В качестве альтернативы вы можете назвать это так: python myfile.py и оно должно работать.



Когда вы импортируете модуль, он является пространством имен, поэтому, если вы хотите использовать что-либо из этого модуля, вам нужно вызывать его, используя правильное пространство имен. Здесь вы можете вызвать функцию echothis, используя print_text.echothis.

В качестве альтернативы, если вы хотите включить echothis в ваше основное пространство имен, вы можете использовать синтаксис from print_text import echothis.

0 голосов
/ 12 декабря 2011

Попробуйте это:

import print_text

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