Exemplo n.º 1
0
def test():
    print("I am in test.py")
    bar.test()
    foo.test()

    def pp():
        print("pp")

    pp()
# Импортировать модуль math, но не включать его содержимое в текущее пространство имён
# Модуль при этом выполнит всю свою инициализацию (и упадёт, если с ней что-то пойдёт не так)
import math
# Дальше можно обращаться к содержимому модуля, явно указывая его имя
print(math.cos(1))

# Импортировать из модуля math конкретную функцию (и включить её в пространство имён)
from math import cos
# Теперь имя модуля при вызове можно уже не писать
print(cos(1))

# Импортировать всё содержимое модуля (и включить его в пространство имён)
from math import *
# Теперь можно вызывать всё, что в нём есть, не указывая имя модуля
print(sin(1))

# Аналогично можно обращаться со своим кодом из файликов
import bar
bar.test()

# Строчки ниже упадут.
# Потому что в момент import foo модуль foo попробует выполнить импорт некоей grawagra, которой нет.
# Важно заметить, что упадёт оно сразу в момент import foo, до попыток его использовать.
# Это позитивный момент - модуль в момент импорта должен упасть сразу, а не маскировать будущую проблему.
#import foo
#foo.test()
Exemplo n.º 3
0
import bar
print "in foo/__init__.py"
print dir(bar)
print bar.test()
Exemplo n.º 4
0
	# 利用するときは import 文を使う。上のファイルがカレントディレクトリにあるなら、
	import foo, bar # foo, bar をインポート。
	# このときモジュール内のプログラムを実行。つまり a に数字を代入して関数 test() を定義する。
	a = 1000 # a に 1000 代入
	def test(): print 'test' # 関数 test() を定義。 a = 1000 もこれもメインモジュールに登録される
	# メインモジュール内の変数や関数は変数名や関数名だけでアクセスできるので、 a なら 1000, test() なら test
	a # 1000
	# 他のモジュールに定義された変数関数にアクセスするには、名前の前にモジュール名とドットをつける
	# foo.a ならモジュール foo の変数 a にアクセスするので
	foo.a # 値は10
	bar.a # 同じく100
	test() # メインモジュールの関数 test() にアクセス
	test
	foo.test() # モジュール foo の test() にアクセス
	module foo
	bar.test() # モジュール bar の test() にアクセス
	module bar

# --- from 文 ---
	# from {モジュール名} import {名前}, ...
	# 名前の衝突がない場合はこれを使うとモジュール名を付けなくていいのでラク
	from foo import a, test
	a # 10
	test() # module foo
	# メインモジュールに a も test() もないので foo. をつけなくていい
	# import * にするとモジュール内のすべての名前を使える! ただし _ で始まる名前は除く
	from bar import *
	a # 100
	test() # module bar
	# 同じ名前の関数を再定義してもエラーにはならない
	from foo import *
Exemplo n.º 5
0
def test():
    print("I am in foo.py - going to call bar.test")
    bar.test()
Exemplo n.º 6
0
def test():
    return bar.test()