0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python 初級入門 モジュールとパッケージ編

Posted at

前提

  • python初学者、触ったことない人が投稿しています
  • 個人的にあまり馴染みのない書き方について記載しています
  • 誤っている箇所等があればコメントでご指摘いただけると幸いです
  • こちらの記事は制御フロー編の続きとなっていますので気になる方は是非!

import

  • import方法は複数存在する 
    → モジュールから読み込むようにすると混乱が起きづらくて良いとされている
    → 会社によってはフルパスで記載すべきというところもある。ただ、長くなりがちなのでモジュールからがベターと言われている
  • また相対パスより絶対パスの方がよしとされている?(あまりわかっていない)
  • 以下実装例です
utils.py
def say_once(word):
    return (word + '!')
main.py
import package.utils
res = lesson_package.utils.say_once('hello')
print(res) # hello!

# 以下のように書くことも可能
from package import utils
res = utils.say_once('hello')
print(res) # hello!

# 以下のように書くことも可能
from package.utils import say_once
res = say_once('hello')
print(res) # hello!
  • またモジュールのディレクトリに__init.py__を作成することで、でimportすることも可能
  • ただ、何が許可されているかが分かりづらいため闇雲に使うことは推奨できない
__init__.py
__all__ = ['say_once']
main.py
from package.utils import *
res = say_once('hello')
print(res) # hello!

ImportError

  • 古いパッケージでも、新しいパッケージでも使えるように
try:
    from package import utils
except ImportError:
    from package.utils import say_once
utils.say_once('word)

作ったパッケージの配布(PyChamを使用しています)

  1. pc上部のメニューバーのtoolsを選択し、create setup.pyを押下
  2. 入力項目に適当な値を入力する
  3. setup.pyが作成され中身を確認すると先ほど設定した内容が記載されています
  4. 再度pc上部からtoolsを選択し、Run setup.py Taskを押下
  5. distファイルが作成されるためそれを周りに配布することが可能
  6. 実際に展開して中身を確認することも可能
setup.py
# こんな感じのものが作成されているはず
from setuptools import setup

setup(
    name='pythonProject',
    version='1.0.0',
    packages=['lesson_package', 'lesson_package.talk', 'lesson_package.tools'],
    url='https://www.google.com',
    license='',
    author='hoge',
    author_email='',
    description='test'
)

組み込み関数

  • print()とも組み込み関数
  • 組み込み関数にどんなものがあるのかは公式を参照してください
# 代表的なやつ
# keyで並び替え
ranking={'a': 100, 'b':85, 'c':90 }
print(sorted(ranking)) # ['a', 'b', 'c']

# valueで並び替え
print(sorted(ranking,key=ranking.get)) # ['b', 'c', 'a']

# valueで並び替えかつ点数が高い順
print(sorted(ranking,key=ranking.get, reverse=True)) # ['a', 'c', 'b']

標準ライブラリ

# 標準ライブラリはimportして使う(具体例)
# sの文字列で使われている文字をカウント
# defaultdict(int)によって初期値をわざわざ設定しなくても使える
from collections import defaultdict
s = 'dfafjknjsfslhajk'
d = {}
d = defaultdict(int)

for c in s:
    d[c] += 1
print(d) # {'d': 1, 'f': 3, 'a': 2, 'j': 3, 'k': 2, 'n': 1, 's': 2, 'l': 1, 'h': 1})

サードパーティーライブラリ

  • Pypiから検索し、pipを使ってインストールすることが可能
  • インストール方法等は記載してある

import時の注意事項

  • ローカルのパッケージが優先されるので名称の被りには注意が必要
  • 標準ライブラリとサードパーティーのimportは一行開けるのが良い
  • 自分達で作成したパッケージの際も一行開けるのが良い
  • 標準ライブラリ - サードパーティー - 自作パッケージの順が好ましい
  • 上記はアルファベット順でそれぞれの中で記載する
import collection
import os

import aaa
import termcolor

import package

学習してみて(つぶやきに近いです)

  • importについては知らないことが多かったですね
  • ただ、やり方それぞれにメリット、デメリットがあるのでそこは個人的に意識しないと事故とか可読性の問題に繋がるなと思いましたね
  • 今まで自分が触ってきた言語とは違う感じだなっと思った(知らなかっただけかもしれないが)
  • パッケージの配布とかやってみたさはありますね

最後に

  • 次回はオブジェクトとクラスについて学んでみようと思います
  • demoAppについて少し考えなくては。。。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?