Python 3エンジニア認定基礎試験-モジュール(相対インポート)-

1. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from .module3 import greet
print(greet())

# module3.py
def greet():
return "Hello from module3"

2. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from ..module1 import add
print(add(10, 20))

# module1.py
def add(a, b):
return a + b

3. 
次のコードで、相対インポートを使用して2階層上のディレクトリからモジュールをインポートする正しい方法を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── subsubpackage/
# │ │ ├── __init__.py
# │ │ ├── module2.py
# module2.py から module1 をインポートする

4. 
次のコードで、module3.py内の関数funcを相対インポートでインポートする正しい方法を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module3.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module4.py
# module4.py から module3.py の func をインポートする

5. 
次のコードの出力結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from ..module1 import greet
print(greet())

# module1.py
def greet():
return "Hello from module1!"

6. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from ..module1 import func
print(func(5, 7))

# module1.py
def func(a, b):
return a + b

7. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from .module3 import greet
from .. import module1
print(greet(), module1.__name__)

# module3.py
def greet():
return "Hello from module3"

# module1.py
def info():
return "Info from module1"

8. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from ..subpackage.module3 import greet
print(greet())

# module3.py
def greet():
return "Hello from module3"

9. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from .. import module1 as mod
print(mod.__name__)

10. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from .. import module1
print(module1.__name__)

# module1.py
print("Module1 imported")

11. 
次のコードにおいて、相対インポートを使用して親パッケージ内のモジュールをインポートする正しい方法を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py から module1 をインポートする

12. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from ..module1 import greet
print(__name__)

# module1.py
def greet():
return "Greetings from module1"

13. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from ..subpackage.module3 import greet
print(greet())

# module3.py
def greet():
return "Greetings from module3!"

14. 
次のコードで、相対インポートが失敗する理由を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from ..module1 import greet

15. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── module1.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# module2.py
from .. import module1
print(module1)

16. 
次のコードにおいて、相対インポートを使用して同じディレクトリ内の別モジュールをインポートする正しい方法を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module1.py
# │ ├── module2.py
# module2.py から module1.py をインポートする

17. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from . import module3
print(hasattr(module3, 'greet'))

# module3.py
def greet():
return "Hello from module3"

18. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from .module3 import greet as hello
print(hello())

# module3.py
def greet():
return "Hello from module3"

19. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from . import module3
print(dir(module3))

# module3.py
def greet():
return "Hello from module3"

class Greeter:
def say_hello(self):
return "Hello, world!"

20. 
次のコードの実行結果を選んでください。

# パッケージ構造:
# package/
# ├── __init__.py
# ├── subpackage/
# │ ├── __init__.py
# │ ├── module2.py
# │ ├── module3.py
# module2.py
from . import module3 as mod
print(mod.__file__)

コメントを残すにはログインしてください。