fibo.py
以下のように定義された python モデルがあるとします。
#Fibonacci numbers module
print "This is a statement"
def fib(n):
a,b = 0,1
while b < n:
print b
a, b = b, a+b
def fib2(n):
a,b = 0,1
result= []
while(b < n):
result.append(b)
a, b = b, a+b
return result
通訳セッションでは、次のことを行います。
>> import fibo
This is a statement
>>> fibo.fib(10)
1
1
2
3
5
8
>>> fibo.fib2(10)
[1, 1, 2, 3, 5, 8]
>>> fibo.__name__
'fibo'
>>>
ここまでは順調です...インタープリターを再起動します。
>>> from fibo import fib,fib2
This is a statement
>>> fibo.__name__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'fibo' is not defined
>>>
と のみをインポートfib
したため、エラーが発生することが予想されましたfib2
。fib
しかし、インポートしただけでステートメントが出力された理由がわかりませんfib2
.
次に、モジュールを次のように変更した場合:
#Fibonacci numbers module
print "This is a statement"
print __name__
期待される結果は何ですか?