タグ

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

  • Python Tips:クラスの継承関係をチェックしたい - Life with Python

    Pythonで「クラス間の継承関係をチェックする方法」をご紹介します。 クラスの継承関係をチェックするために使える関数として、次の2つの関数があります。 issubclass mro 以下、順番に見ていきます。まずは issubclass から。 issubclass issubclass は引数を2つ取る関数で、ひとつめにサブクラスを、ふたつめにスーパークラスを受け取ります。 ひとつめの引数に渡したクラスがふたつめに渡したクラスのサブクラスであれば True 、そうでなければ False を返してくれます。 たとえばこんな感じ。 # スーパークラス Dog class Dog(object): pass # サブクラス BigDog # Dog を継承しているので継承関係は BigDog < Dog < object class BigDog(Dog): pass print issub

    Python Tips:クラスの継承関係をチェックしたい - Life with Python
    U1and0
    U1and0 2018/11/13
    issubclass() builtin function
  • Python Tips: 既存のクラスにインスタンスメソッドを追加したい

    Pythonで、既存のクラスにインスタンスメソッドを追加する方法をご紹介します。 既存のクラスにメソッドを追加するには次の手順を踏みます。 まず関数を別途定義してから その関数名をクラスのアトリビュートにする 具体例を見てみます。 # __init__ メソッドだけを備えた Dog クラス class Dog(object): def __init__(self, name): self.name = name # 以下で Dog クラスに count_number というインスタンスメソッドを追加する # 01 まずは関数を定義 def count_number(self): print "%s counts: one! one!" % self.name # 02 定義した関数をクラスのアトリビュートに追加 Dog.count_number = count_number # 結果 ta

    Python Tips: 既存のクラスにインスタンスメソッドを追加したい
    U1and0
    U1and0 2016/11/21
    クラスにメソッド追加Dog.count_number = count_number
  • Python の変数名のつけ方

    Python の変数名のつけ方に関するルールについてご紹介します。 Python の変数の名前( identifier/name )には次の 3 種類の文字を使うことができます。 a ~ z のアルファベット(大文字も可) 0 〜 9 の数字 _ (アンダースコア) 名前の長さに関する制限はないため、 100 字を越える極端に長い名前をつけることも可能です(実用性の面でそうすることは無いと思います)。 また、名前の文字列としての制約として次の 2 つがあります。 最初の文字を数字にすることはできない 予約語/キーワードと同じ名前は使えない 「最初の文字を数字にすることはできない」の例は次のとおりです。 ◯: 「予約語/キーワードと同じ名前は使えない」というのは、 if や for といった、 Python の文法上特殊な意味を持つ単語は使うことができないという意味です。 if for以外に

    Python の変数名のつけ方
    U1and0
    U1and0 2016/09/04
    ひとつは、「慣用的に推奨されている名前づけのルールに従う」ということ。たとえば 関数の名前であればlower_case_with_underscoresにする クラス名はCapitalizedWordsにする
  • Python Tips: 標準入力から文字列を取得したい

    Python 2.x で入力を取得する方法をご紹介します。 Python では、入力を取得する方法が大きく分けて 2 種類あります。 raw_input() sys.stdin.readline() ```` readlines() ```` read() 以下、それぞれについて順に見ていきます。 raw_input() raw_input() はコマンドラインからの入力を取得するための関数です。組み込みの関数なので、ライブラリを import しなくてもそのまま使えます。 input_line1 = raw_input() print input_line1 + " is written" # => 入力された文字列 is written raw_input() で得られる文字列は、入力された文字列から自動的に改行文字を取り除いてくれます。 ちなみに Python 3 ではこの raw_

    Python Tips: 標準入力から文字列を取得したい
    U1and0
    U1and0 2016/09/04
    Pythonでは、入力を取得する方法が大きく分けて2種類あります。 raw_input sys.stdin.readline readlines read
  • Python Tips: 実行中のスクリプトの名前を取得したい

    Pythonで、実行中のスクリプトの名前を取得する方法をご紹介します。 と構えるまでもなくやり方はかんたんで、組み込みの変数 file を使います。

    Python Tips: 実行中のスクリプトの名前を取得したい
    U1and0
    U1and0 2016/08/07
    print __file__ # => 実行中のスクリプト名の絶対パスimport os print os.path.basename(__file__) # => 実行中のスクリプト名
  • Python の例外処理

    追記 2018/05/23: Python の例外に興味がある方には次の記事も参考になるかもしれません。よろしければご覧ください。 Python Tips: Python の例外システムを活用したい Python における例外処理について説明してみたいと思います。 Python では、例外処理「 try ... catch ... 」のロジックは try ```` except というキーワードを使って実現することができます。 以下、最も基的な形から順に Python での例外処理の方法について見ていきましょう(ここでご紹介する記法は Python 2.x のものです。 Python 3.x の場合は少し異なるのでご注意ください)。 try - except 最も基的な形は try と except を使ったパターンです。 try: f = open('sample.txt', 'r'

    Python の例外処理
    U1and0
    U1and0 2016/05/12
    elseブロックをつけると、例外が発生しなかった場合にだけ行いたい処理を指定することができます。finallyブロックをつけると、例外が発生してもしなくても、いずれの場合でも共通で行う処理を指定することができます。
  • Python の無名関数( lambda )の使い方

    Python における無名関数の使い方についてご説明します。 Python では lambda 式を使って無名関数を定義することができます。

    Python の無名関数( lambda )の使い方
    U1and0
    U1and0 2016/05/11
    上にあげた例だとあえて無名関数を使うメリットがあまりないのですが、他の関数と組み合わせて使ったりする場合に無名関数は便利です。 例として、sorted()、map()、filter()とあわせて使う場合の例をあげてみます。
  • Python Tips:dict(辞書)型の中身をソートしたい - Life with Python

    Python の dict 型のオブジェクトをキーやバリューでソートしてから取り出す方法についてご紹介します。 シンプルでかんたんなのは sorted() 関数に key オプションを渡す方法です。 公式ドキュメントによると sorted() 関数の宣言部は次のとおりとされています。

    Python Tips:dict(辞書)型の中身をソートしたい - Life with Python
    U1and0
    U1and0 2016/03/22
    Python Tips:dict(辞書)型の中身をソートしたい
  • Python の基本的な高階関数( map() filter() reduce() )

    Python 2 の高階関数のうち、組み込みで用意されている基的なものについてご紹介します。 具体的には次の 3 つを見ていきます。 map() filter() reduce() 個別の説明に入る前に、まずは「高階関数」について少し説明をします。 高階関数とは、英語の「 higher-order function 」の訳で、「関数を引数として受け取る関数」のことです。たとえば、リストの各要素に共通の処理を加えたリストを作成したい場合なんかに、処理をわかりやすく簡潔に記述することができます。 高階関数の仕組みを用意している言語は他にもたくさんありますが、 Python の場合は「関数はオブジェクトであり、関数に () をつけると初めて関数が呼び出される」決まりとなっています。 () なしで関数の名前だけを指定すればその関数そのものを捉えることができます。 たとえば、三角関数を実装した s

    Python の基本的な高階関数( map() filter() reduce() )
    U1and0
    U1and0 2016/03/17
    list(map(abs, a))
  • Python Tips: ライブラリ・モジュールの場所を調べたい

    Python でライブラリ(モジュールやパッケージ)がどのディレクトリに入ってるのか、その場所を調べる方法についてご紹介します。 ライブラリの場所は、モジュールの __file__ アトリビュートか __path__ アトリビュートで調べることができます。

    Python Tips: ライブラリ・モジュールの場所を調べたい
    U1and0
    U1and0 2016/03/08
    ライブラリの場所は、モジュールの __file__ アトリビュートか __path__ アトリビュートで調べることができます。 import datetime print datetime.__file__ # => datetimeモジュールの場所
  • 1