
tl;dr¶ボトルネックはちゃんと測定して把握しないとダメだよ。 N+1問題¶DjangoやRailsなど、ORMを利用するWebフレームワークなどの開発では、よく 「N+1問題」 というのが話題になります。ORMでは、あるモデルが参照している別のモデルを参照するとその時点でSQLが発行されてしまうため、気が付かないうちにパフォーマンスが低下する場合がある、というやつですね。 Django¶例えば、Djangoで次のようなモデルがあったとき、 class Table1(models.Model): text = models.TextField() class Table2(models.Model): table1 = models.ForeignKey(Table1, on_delete=models.CASCADE)
オブジェクト指向 1. オブジェクト指向の起源 2003年チューリング賞の受賞者アラン・ケイさんはよくオブジェクト指向プログラミングの父と称されます。ご本人も憚ることなく、幾度、公の場で発明権を宣言しています。しかし、ケイさんは「C++」や「Java」などの現代のオブジェクト指向言語を蔑ろにしています。これらの言語は「Simula 67」という言語を受け継いだもので、私が作った「Smalltalk」と関係ないのだとケイさんは考えています。 オブジェクト指向という名称は確かにアラン・ケイさんに由来するものです。しかし、C++とJavaで使われている現代のオブジェクト指向は当初のと結構違います。ケイさん自身もこれらの言語を後継者として認めないです。では、ケイさん曰くC++とJavaの親であるSimula 67という言語はどんな言語でしょうか。ここで、簡単なサンプルコードを見てみましょう。 Cl
まえがき 今年の PyCon JP 2020 にて「Python 3.9 時代の型安全な Python の極め方」というタイトルで登壇させていただきます。本稿は、発表の補足となる「型ヒントを使って Immutable な Python を実現する方法」について紹介したものです。 Python の型ヒント Python には「型ヒント」という機能があり、型をプログラム内に宣言することができます。 age: int = 28 name: str = 'Bruce Wayne' Python は動的型付き言語であるため、この情報はランタイム(実行時)にはあまり意味がないのですが、 mypy などの型チェックツールをつかうと、型の誤りをチェックすることができます。 def check_batman(name: str) -> bool: return name == 'Bruce Wayne' a
Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Documenting Code in Python Welcome to your complete guide to documenting Python code. Whether you’re documenting a small script or a large project, whether you’re a beginner or a seasoned Pythonista, this guide will cover everything you need
auです。 今回は、学校の授業で習ったけどあまり理解のできていなかったclassについて勉強しました。 classって何? classとは、一言でいうと「データの設計図」です。これは、データがどんな特徴を持っているか、どのような機能を持っているかについて書かれています。 classと関数って何が違うの? classも関数も、どちらもいくつかの処理をまとめて、使いたいときに呼び出せて便利であるという共通点があります。しかし、class関数よりも大きい概念であり、classの中には、関数をいくつも持つことができる違いがあります。また、これは関数の集合体のようであるのですが、関数だけでなく、変数も一緒に持つことができます。 つまりclassは「変数」と「関数」の集合体であるといえます! classを使うと何がいいの? classを使うと、2ついいことがあります。 1つ目は、プログラムの規模が大き
機械学習にどのようなPythonの知識が必要かは、Python機械学習プログラミングの監訳者福島 真太朗(ふくしま しんたろう)さんが以下のように述べられています。 Pythonの文法については、リスト、タプル、ディクショナリなどの基本的なデータ構造、forループ、print関数、zip関数、enumerate関数、関数やクラスの作成方法などが理解できていれば十分です。 thinkit.co.jp そこで今回はPythonで書かれた機械学習のコードを読めるように、リスト、タプル、ディクショナリなどの基本的なデータ構造、forループ、print関数、zip関数、enumerate関数、関数やクラスの作成方法について学んでいきます。 従ってこの記事は、Pythonを一度もやったことがなく、機械学習のためにPythonを学びたいという人向けです。 今回読み解くPythonコードについて 今回は題
Python の クラス(class)は次のように定義します。クラス名は慣習的に大文字で始めます。 class MyClass: """A simple example class""" # 三重クォートによるコメント def __init__(self): # コンストラクタ self.name = "" def getName(self): # getName()メソッド return self.name def setName(self, name): # setName()メソッド self.name = name a = MyClass() # クラスのインスタンスを生成 a.setName("Tanaka") # setName()メソッドをコール print(a.getName()) # getName()メソッドをコール クラス定義の冒頭には、"""...""" で ドキュ
はじめに pythonにはcmdという非常に便利なクラスがある。これは簡単に言うと、オリジナルなコマンド待ち受けが作れてしまう。特に自分が気にっているのはアクションの補完機能が勝手に付加されるところ。 何かシンプルなツールを作る時、それは何かのファイルをパースしたり、簡単なデータを送ったり、もちろん普通にスクリプトで書いてもいいと思う。もし、シェルスクリプトなどで作るのが飽きたならば、気分転換でpythonのcmdクラスを使ってみてもいいかもしれない。 実装 ここではシンプルな実装にする。 from cmd import Cmd class testCmd(Cmd): prompt = "hoge) " def __init__(self): Cmd.__init__(self) def do_exe(self, arg): print "do anything" def help_exe
次の問題(すでにシリーズ化の予感) 今、ファイルを読んで split でキーワードの配列 key を作った。 で、その配列の要素数 len(key) だけ、class Column の配列 d を作りたい。 しかし、配列の大きさは判ってるんだから、1つづつ d.append( Column() ) ってやるのは何となく嫌だ。メモリがフラグメンテーションを起こす予感がする。何より、実際には
# https://gist.github.com/mitukiii/4234173 import sys, commands from percol.command import SelectorCommand from percol.key import SPECIAL_KEYS from percol.finder import FinderMultiQueryMigemo, FinderMultiQueryRegex ## prompt # Case Insensitive / Match Method に応じてプロンプトに表示 def dynamic_prompt(): prompt = ur"" if percol.model.finder.__class__ == FinderMultiQueryMigemo: prompt += "[Migemo]" elif percol
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く