タグ

ブックマーク / www.lifewithpython.com (7)

  • Python Tips: Python で文字列を切り詰めたい

    Python で文字列を切り詰める方法についてご紹介します。 いろんな方法があるように思いますが、今回はその中で次の 2 つの方法をご紹介してみます。 A. スライスで切り詰める B. テンプレートに埋め込むときに切り詰める A. スライスで切り詰める こちらは文字列のスライスを使って切り詰める方法です。こちらはシンプルですね。 s1 = '露と落ち 露と消えにし 我が身かな 浪速のことは 夢のまた夢' s1_truncated = s1[:10] print(s1_truncated) # => 露と落ち 露と消えに def truncate(string, length, ellipsis='...'): '''文字列を切り詰める string: 対象の文字列 length: 切り詰め後の長さ ellipsis: 省略記号 ''' return string[:length] + (e

    Python Tips: Python で文字列を切り詰めたい
  • Python の super() 関数の使い方

    Python でスーパークラスのインスタンスメソッドを呼び出すときに使える super() 関数の使い方をご紹介します。 Python 3 の場合 まずは例を見てください。 class Dog: def __init__(self, name): self.name = name class UltraDog(Dog): def __init__(self, name, type_): super().__init__(name) self.type = type_ ud1 = UltraDog("taro", "akita") print(ud1.name) このコードでは、 Dog のサブクラス UltraDog の __init__() メソッドの中で super().__init__(name) という書き方を使ってスーパークラス Dog の __init__() メソッドを呼び出

    Python の super() 関数の使い方
    reboot_in
    reboot_in 2021/03/15
    “Python 2 の場合は Python 3 と少し違って、 super() 関数には 2 つの引数を渡す必要があります。具体的には super(クラス, インスタンス自身) とやって使います。”
  • Python Tips: 現在の関数の名前や引数を取得したい

    Python で現在の関数の名前を取得する方法をご紹介します。 PHP でいうところの FUNCTION に相当する情報を取得するイメージです。 結論からいうと inspect モジュールの inspect.currentframe() の戻り値の f_code.co_name というプロパティで確認することができます。 import inspect def my_special_function(*args): print("Now in " + inspect.currentframe().f_code.co_name) if __name__ == '__main__': my_special_function() # => Now in my_special_function

    Python Tips: 現在の関数の名前や引数を取得したい
    reboot_in
    reboot_in 2021/03/05
    “import inspect def my_special_function(*args): print("Now in " + inspect.currentframe().f_code.co_name) if __name__ == '__main__': my_special_function() # => Now in my_special_function”
  • Python にまつわるアイデア: Python のパッケージとモジュールの違い

    Python の「パッケージ」と「モジュール」の違いについて説明してみます。 題に入る前に数点お断りです。 この記事は長文です。 記事作成時の Python の最新バージョンは Python 3.6 です。 Python 3.6 の頃の認識にもとづいて書かれています。 この記事はある程度調査・確認をした上で書いていますが、私は Python の仕様や Python そのものの開発のプロではありません。あくまでも Python のいちユーザの認識であり間違っている可能性があります(とはいえ、なるべく正確に書こうというモチベーションで書いているので、詳しい方で間違いに気づいた方はご指摘いただけますと幸いです)。 Python の「パッケージ」と「モジュール」の違い Python のパッケージとモジュールの概念は少し複雑なので、ひとことでかんたんに説明することができません。 次の 2 通りの方

    Python にまつわるアイデア: Python のパッケージとモジュールの違い
    reboot_in
    reboot_in 2020/12/15
    “モジュール = ファイル。拡張子が .py の Python ファイルのこと。 パッケージ = ディレクトリ。 __init__.py というファイルを格納したディレクトリのこと。import 文で読み込むことができる点はどちらも共通です。”
  • Python Tips: ライブラリをまとめてインストールしたい

    Pythonのライブラリをまとめてインストールする方法をご紹介します。 pip がインストールされていれば、 pip install の -r オプションで一括インストールが可能です。 $ pip install -r requirements.txt $ pip install --require requirements.txt # このように書いても OK requirements.txt の中身は次のような形でライブラリの一覧を書きます。 cssselect==0.9.1 lxml==3.2.4 mechanize==0.2.5 pyquery==1.2.6 requests==2.0.1 selenium==2.37.2 wsgiref==0.1.2 この形は pip freeze の出力形式と同じなので、特定のライブラリ環境を別のところに移したい場合なんかにも pip free

    Python Tips: ライブラリをまとめてインストールしたい
    reboot_in
    reboot_in 2017/06/11
    “$ # コピー元の環境でライブラリ一覧を作成 $ pip freeze > requirements.txt $ $ # 新しい環境に移ってまとめてインストール $ pip install -r requirements.txt”
  • Python Tips: 引数のデフォルト値を活用したい

    Python では関数の引数としてデフォルトの値を設定することができます。 今回はそのデフォルト値についての注意点をまとめてみます。 まず、デフォルトの値が与えられた引数については省略できるようになります。 import time def take_nap(duration = 60): print('Will sleep for {} seconds...'.format(duration)) time.sleep(duration) take_nap() # => Will sleep for 60 seconds... デフォルト値が与えられた引数の後にデフォルト値のない引数を置くことはできません。宣言時に SyntaxError が発生します。デフォルト値にない引数の後にデフォルト値のある引数を持ってくるようにしましょう。 def take_nap(duration = 60, c

    Python Tips: 引数のデフォルト値を活用したい
    reboot_in
    reboot_in 2017/06/10
    “「デフォルト値は関数宣言時に一度だけ評価され、関数の呼び出し時には再利用される」”
  • Python Tips: リストの中から要素をランダムにピックアップしたい

    Pythonでリストの中から要素をランダムで抽出する方法をご紹介します。 ランダムで抽出する、というとき、抽出方法は2つあるかと思います。 1つだけ抽出する 複数抽出する 以下、それぞれについて見ていきます。 1つだけ抽出する 1つだけ抽出したいときは random ライブラリの choice 関数を使います。 import random marks = ['club', 'diamond', 'heart', 'spade'] numbers = range(1, 14) cards = [(m, n) for m in marks for n in numbers] random.choice(cards) # => トランプのカードのいずれか たとえば、52枚のカードの束から1枚取り出して、そのカードをまた元に戻して、というように繰り返す場合なんかは、 random.choice を

    Python Tips: リストの中から要素をランダムにピックアップしたい
    reboot_in
    reboot_in 2017/06/10
    “random.sample(cards, 5) # => 52枚のカードの中からランダムに5枚”
  • 1