# 1. import lesson_package.utils # 2. from lesson_package import utils # 3. from lesson_package.utils import say_twice # 下記もできるがおすすめできない # from lesson_package import utils as u # 2を使う from lesson_package import utils # from lesson_package.talk import human # 下記アスタリスクもある(__init__.pyに記載必要)あまり使わないように from lesson_package.talk import * # 1. r = lesson_package.utils.say_twice('hello') # 2. r = utils.say_twice('hello') # 3. r = say_twice('hello') # この書き方はどこで使っているのかわからなくなるからあまり使わない r = utils.say_twice('hello') print(r) print(human.sing()) print(animal.sing()) # 会社によって異なる # 必ずフルパスで書くとこもあり
print(''' ######:##### TODO: ### パッケージの使い方 ########################## 1: 新規フォルダー作成で、Packageを作成する 2: 1のフォルダーの中に、「__init__.py」、「その他モジュール(ex:utils.py)」などを作成 ➡「__init__.py」がないと、Python上でPackageとして認識されない=必須 ➡ ''') # 🟡ファイル上部のimport文を見ながら、復習すること # print(lesson_basic.lesson_package.utils.say_twice('hello')) print(utils.say_twice('hello')) # 🟡インポートするときは、もじゅるー名から呼び出すようにする(どこから呼ばれているかを明確化するため) # from lesson_package.talk import animal, human human.talk() human.eat() # 🟡インポートにアスタリスクをつければ、Talkパッケージ内の全てのファイルを利用できるようになる # from lesson_package.talk import * animal.eat() animal.talk() print(''' ########### TODO: ### importエラーの回避方法(エラーハンドリング) ##########################
# 以下のように書くと関数のみimportできるが、どこから持ってきた関数なのか分からないのでNG # from lesson_package.utils import say_twice # もしも関数のみのimportだと 関数名が被る可能性がある # モジュール名が長い場合は短くできるが、あまり短すぎると分からなくなるのでNG # from lesson_package.talk import humans # from lesson_package.talk import animal # 以下のように書くと、__init__に書いてあるものが全て読み込まれるが、どんなものが読み込まれるか分からないので推奨されていない # from lesson_package.talk import * # print(animal.sing()) # print(animal.cry()) # r = lesson_package.utils.say_twice('hello') # r = utils.say_twice('hello') # r = say_twice('hello') # r = u.say_twice('hello') # print(r) # print(human.sing()) # print(human.cry()) # 古いパッケージがあれば使用して、ない場合には新しいパッケージをimportする際には、ImportErrorが使える try: from lesson_package import utils except ImportError: from lesson_package.tools import utils print(utils.say_twice('word'))
try: from lesson_package import utils except ImportError: from lesson_package.tools import utils utils.say_twice('word')
def cry(): return utils.say_twice('cry')
#あまり多いと勧められない #from lesson_package.talk import * #名前を変えて読み込めるがあまり多用はしない方がよい #from lesson_package import utils as u #どこから来たのかわかりづらくなるのであまり推奨されない #from lesson_package.utils import say_twice #r = lesson_package.utils.say_twice("hello") #r = utils.say_twice("hello") #非推奨 #r = say_twice("hello") #print(r) # print(animal.sing()) # print(animal.cry()) # print(human.sing()) # print(human.cry()) try: from lesson_package import utils except ImportError: #新しいパッケージの場合はこちら、というような使い方 from lesson_package import utils r = utils.say_twice("word") print(r)
import lesson_package.utils r = lesson_package.utils.say_twice('hello') print(r) """ hello!hello! """ from lesson_package import utils print(utils.say_twice("good")) """ good!good! """ from lesson_package import utils as u print(u.say_twice("best")) """ good!good! """ #この書き方は好まれない from lesson_package.utils import say_twice print(say_twice("nice")) """ nice!nice! """
def cry(): return utils.say_twice('fkoguoujnsbwrg')
# ImportErrorの使い所 # バージョンが変わる場合や、import先が変わる場合の書き方 try: from lesson_package import utils except ImportError: from lesson_package.tools import utils h = utils.say_twice('Hello') print(h)
# import lesson_package.utils from lesson_package.utils import say_twice from lesson_package.talk import human r = say_twice('hello') print(human.sing()) print(human.cry())
def cry(): return utils.say_twice("fhsauiofdsajwe")
def cry(): return utils.say_twice('K`H;hfskhfls`hglh')
import sys # 実行時引数の読み込み print(sys.argv) # 自作パッケージ import lesson_package.utils # from lesson_package.utils import say_twice from lesson_package import utils r = utils.say_twice('hello') print(r) from lesson_package.talk import human r = human.sing() print(r) # 絶対パスと相対パスは lesson_package/talk/human.py を参照 r = human.cry() print(r) # package内の全てのmoduleのimport # *を使うには、読み込むpackageの__init__.pyに__all__でファイル名のリストを定義する # *は非推奨 何を読み込んで使いたいのか不明瞭 from lesson_package.talk import * r = animal.cry() print(r) # 古いパッケージと新しいパッケージのバージョンがある場合に使用する。
def cry(): return utils.say_twice("cry")