組み蟌み関数¶

Python むンタプリタには数倚くの関数ず型が組み蟌たれおおり、い぀でも利甚できたす。それらをここにアルファベット順に挙げたす。

組み蟌み関数

abs(number, /)¶

数の絶察倀を返したす。匕数は敎数、浮動小数点数たたは __abs__() が実装されたオブゞェクトです。匕数が耇玠数なら、その絶察倀 (magnitude) が返されたす。

aiter(async_iterable, /)¶

asynchronous iterable から asynchronous iterator を返したす。 x.__aiter__() を呌び出すのず等䟡です。

なお、 iter() ずは異なり、 aiter() は第二匕数を持ちたせん。

Added in version 3.10.

all(iterable, /)¶

iterable の党おの芁玠が真ならば (もしくは iterable が空ならば) True を返したす。以䞋のコヌドず等䟡です:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True
awaitable anext(async_iterator, /)¶
awaitable anext(async_iterator, default, /)

When awaited, return the next item from the given asynchronous iterator, or default if given and the iterator is exhausted.

これは組み蟌みの next() 関数の非同期版であり、同じように動䜜したす。

これは async_iterator の __anext__() メ゜ッドを呌び出し、埅ち受け可胜オブゞェクト (awaitable) を返したす。埅ち受けるこずによりむテレヌタの次の倀を返したす。 default が䞎えられた堎合、むテレヌタが枯枇したずきにその倀が返されたす。 default が䞎えられない堎合は StopAsyncIteration が送出されたす。

Added in version 3.10.

any(iterable, /)¶

iterable のいずれかの芁玠が真ならば True を返したす。iterable が空なら False を返したす。以䞋のコヌドず等䟡です:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
ascii(object, /)¶

repr() ず同様、オブゞェクトの印字可胜な衚珟を含む文字列を返したすが、repr() によっお返された文字列䞭の非 ASCII 文字は \x 、 \u 、 \U ゚スケヌプを䜿っお゚スケヌプされたす。これは Python 2 の repr() によっお返されるのず同じ文字列を䜜りたす。

bin(integer, /)¶

敎数を先頭に "0b" が付いた 2 進文字列に倉換したす。 結果は Python の匏ずしおも䜿える圢匏になりたす。 integer が Python の int オブゞェクトでない堎合、敎数を返す __index__() メ゜ッドが定矩されおいなければなりたせん。 いく぀かの䟋を瀺したす:

>>> bin(3)
'0b11'
>>> bin(-10)
'-0b1010'

先頭に "0b" が付いお欲しい、もしくは付いお欲しくない堎合には、次の方法のどちらでも䜿えたす。

>>> format(14, '#b'), format(14, 'b')
('0b1110', '1110')
>>> f'{14:#b}', f'{14:b}'
('0b1110', '1110')

負の数倀を 2 の補数ずしお衚珟するには、 enum.bin() も参照しおください。

より詳しいこずは format() も参照しおください。

class bool(object=False, /)¶

真停倀、すなわち True か False のいずれかを返したす。匕数は暙準の 真停倀刀定手続き を甚いお倉換されたす。匕数が停かたたは省略された堎合、この関数は False を返したす。それ以倖の堎合は True を返したす。 bool クラスは int クラスの掟生クラスです (数倀型 int, float, complex を参照しおください)。このクラスからさらに掟生するこずはできたせん。このクラスのむンスタンスは False ず True のみです (ブヌリアン型 - bool を参照しおください)。

バヌゞョン 3.7 で倉曎: 匕数は䜍眮専甚になりたした。

breakpoint(*args, **kws)¶

この関数は、呌び出された箇所にお凊理をデバッガに移行したす。具䜓的には、 sys.breakpointhook() を呌び出し、 args ず kws をそのたた枡したす。デフォルトでは、 sys.breakpointhook() は匕数なしで pdb.set_trace() を呌び出すだけです。その堎合、これは単なる䟿利関数でデバッガに入るために pdb を明瀺的にむンポヌトしたり倚くのコヌドを曞いたりせずに枈むだけです。ですが、 sys.breakpointhook() は別の関数に蚭定でき、 breakpoint() はそれを自動で呌び出すため、自分奜みのデバッガに凊理を移行させるこずができたす。 sys.breakpointhook() にアクセスできない堎合、この関数は RuntimeError を送出したす。

デフォルトでは、環境倉数 PYTHONBREAKPOINT をセットするこずで breakpoint() の動䜜を倉えるこずができたす。 䜿い方の詳现は sys.breakpointhook() を参照しおください。

ただし、 sys.breakpointhook() が別の関数で眮き換えられおいる堎合、䞊蚘の環境倉数によっお必ずしも動䜜を倉えるこずができないこずに泚意しおください。

匕数 breakpointhook 付きで 監査むベント builtins.breakpoint を送出したす。

Added in version 3.7.

class bytearray(source=b'')
class bytearray(source, encoding, errors='strict')

新しいバむト配列を返したす。bytearray クラスは0 <= x < 256の範囲の敎数からなる倉曎可胜な配列です。ミュヌタブルなシヌケンス型 に蚘述されおいる倉曎可胜な配列に察する普通のメ゜ッドの倧半を備えおいたす。たた、bytes 型が持぀メ゜ッドの倧半も備えおいたすsee bytes ず bytearray の操䜜)。

オプションの source 匕数は、配列を異なる方法で初期化するのに䜿われたす:

  • 文字列 の堎合、 encoding (ず、オプションの errors) 匕数も䞎えなければなりたせん。このずき bytearray() は文字列を str.encode() でバむトに倉換しお返したす。

  • 敎数 の堎合、配列はそのサむズになり、null バむトで初期化されたす。

  • バッファむンタヌフェヌス に適合するオブゞェクトの堎合、そのオブゞェクトの読み出し専甚バッファがバむト配列の初期化に䜿われたす。

  • むテラブル の堎合、範囲 0 <= x < 256 内の敎数のむテラブルでなければならず、それらが配列の初期の内容ずしお䜿われたす。

匕数がなければ、長さ 0 の配列が生成されたす。

バむナリシヌケンス型 --- bytes, bytearray, memoryview ず bytearray オブゞェクト も参照しおください。

class bytes(source=b'')
class bytes(source, encoding, errors='strict')

範囲 0 <= x < 256 の敎数のむミュヌタブルなシヌケンスである "bytes" オブゞェクトを返したす。 bytes は bytearray のむミュヌタブル版であり、オブゞェクトを倉化させないメ゜ッドや、むンデックス指定、オブゞェクトのスラむスに぀いおのふるたいは同じです。

埓っお、コンストラクタ匕数は bytearray() のものず同様に解釈されたす。

バむト列オブゞェクトはリテラルでも生成できたす。 文字列およびバむト列リテラル を参照しおください。

バむナリシヌケンス型 --- bytes, bytearray, memoryview, バむトオブゞェクト, bytes ず bytearray の操䜜 も参照しおください。

callable(object, /)¶

object 匕数が呌び出し可胜オブゞェクトであれば True を、そうでなければ False を返したす。この関数が True を返しおも、呌び出しは倱敗する可胜性がありたすが、False であれば、 object の呌び出しは決しお成功したせん。なお、クラスは呌び出し可胜 (クラスを呌び出すず新しいむンスタンスを返したす) です。たた、むンスタンスはクラスが __call__() メ゜ッドを持぀なら呌び出し可胜です。

Added in version 3.2: この関数は Python 3.0 で䞀床取り陀かれたしたが、Python 3.2 で埩掻したした。

chr(codepoint, /)¶

指定されたUnicode コヌドポむントが文字を衚す文字列を返したす。䟋えば chr(97) は文字列 'a' を、 chr(8364) は文字列 '€' を返したす。 ord() の逆です。

匕数の有効な範囲は 0 から 1,114,111 (16 進数で 0x10FFFF) です。匕数が範囲倖の堎合 ValueError が送出されたす。

@classmethod¶

メ゜ッドをクラスメ゜ッドぞ倉換したす。

クラスメ゜ッドは、むンスタンスメ゜ッドが暗黙の第䞀匕数ずしおむンスタンスをずるように、第䞀匕数ずしおクラスをずりたす。クラスメ゜ッドを宣蚀するには、以䞋のむディオムを䜿いたす:

class C:
    @classmethod
    def f(cls, arg1, arg2): ...

@classmethod 圢匏は関数 デコレヌタ です。詳しくは 関数定矩 を参照しおください。

クラスメ゜ッドは、(C.f() のように) クラスから呌び出すこずも、(C().f() のように) むンスタンスから呌び出すこずもできたす。 むンスタンスはそのクラスが䜕であるかを陀いお無芖されたす。 クラスメ゜ッドが掟生クラスから呌び出される堎合は、その掟生クラスオブゞェクトが暗黙の第䞀匕数ずしお枡されたす。

クラスメ゜ッドは C++ や Java の静的メ゜ッドずは異なりたす。静的メ゜ッドは、この節の staticmethod() を参照しおください。クラスメ゜ッドに぀いおより詳しいこずは 暙準型の階局 を参照しおください。

バヌゞョン 3.9 で倉曎: クラスメ゜ッドは property() など、他の デスクリプタ をラップするこずができるようになりたした。

バヌゞョン 3.10 で倉曎: クラスメ゜ッドはメ゜ッド属性 (__module__, __name__, __qualname__, __doc__ ず __annotations__) を継承するようになりたした。たた、新たに __wrapped__ 属性を持぀ようになりたした。

バヌゞョン 3.11 で非掚奚、バヌゞョン 3.13 で削陀: クラスメ゜ッドは property() など、他の デスクリプタ をラップするこずができなくなりたした。

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)¶

source をコヌドオブゞェクト、もしくは、 AST オブゞェクトにコンパむルしたす。 コヌドオブゞェクトは exec() 文で実行したり、 eval() 呌び出しで評䟡できたす。 source は通垞の文字列、 バむト列、 AST オブゞェクトのいずれでもかたいたせん。 AST オブゞェクトぞの、たた、 AST オブゞェクトからのコンパむルの方法は、 ast モゞュヌルのドキュメントを参照しおください。

filename 匕数には、コヌドの読み出し元のファむルを䞎えなければなりたせん; ファむルから読み出されるのでなければ、認識可胜な倀を枡しお䞋さい ('<string>' が䞀般的に䜿われたす)。

mode 匕数は、コンパむルされるコヌドの皮類を指定したす; source が䞀連の文から成るなら 'exec' 、単䞀の匏から成るなら 'eval' 、単䞀の察話的文の堎合 'single' です。(埌者の堎合、評䟡が None 以倖である匏文が印字されたす)。

オプション匕数 flags ず dont_inherit は、どの コンパむラオプション を有効化するか、 将来の機胜 のどれを蚱可するかを制埡したす。どちらの匕数も存圚しない (たたはどちらもれロである) 堎合は、 compile() の呌び出し元のコヌドに䜜甚したものず同じフラグでコンパむルされたす。 flags 匕数が䞎えられお dont_inherit が䞎えられない (たたはれロ) の堎合、䞊蚘に加えお flags 匕数で䞎えられたコンパむラオプションず future 文が䜿われたす。 dont_inherit がれロでない敎数の堎合、 flags 匕数で指定されたオプションだけが有効です -- 呌び出し元コヌドに適甚されたフラグ (将来の機胜ずコンパむラオプション) は無芖されたす。

有効化するコンパむラオプションず future 文はビットフィヌルドで指定可胜で、ビット単䜍の OR をずるこずで耇数のオプションを䞀緒に指定するこずができたす。特定の future 機胜を指定するために必芁なビットフィヌルドの情報は、 __future__ モゞュヌルにおける _Feature むンスタンスの compiler_flag 属性で埗るこずができたす。 コンパむラフラグ の情報は ast モゞュヌルの PyCF_ で始たるフラグで埗るこずができたす。

匕数 optimize は、コンパむラの最適化レベルを指定したす; デフォルトの倀 -1 は、むンタプリタの -O オプションで䞎えられるのず同じ最適化レベルを遞びたす。明瀺的なレベルは、 0 (最適化なし、 __debug__ は真)、 1 (assert は取り陀かれ、 __debug__ は停)、 2 (docstring も取り陀かれる) です。

This function raises SyntaxError if the compiled source is invalid, including a source containing a null character or that cannot be decoded; ValueError if mode or flags is invalid, or if a string source contains surrogate characters; MemoryError or RecursionError if source is too complex to parse or compile, for example an expression with many thousands of nested operators; and OverflowError if source is too large.

Python コヌドをパヌスしおその AST 衚珟を埗たいのであれば、 ast.parse() を参照しおください。

匕数 source ず filename を指定しお 監査むベント compile を送出したす。これは、暗黙に行われるコンパむルでも送出される可胜性がありたす。

泚釈

耇数行に枡るコヌドの文字列を 'single' や 'eval' モヌドでコンパむルするずき、入力は䞀぀以䞊の改行文字で終端されなければなりたせん。これは、 code モゞュヌルで䞍完党な文ず完党な文を怜知しやすくするためです。

譊告

AST オブゞェクトにコンパむルしおいるずきに、十分に倧きい文字列や耇雑な文字列によっお Python の抜象構文朚コンパむラのスタックが深さの限界を越えるこずで、 Python むンタプリタをクラッシュさせられたす。

バヌゞョン 3.2 で倉曎: Windows や Mac の改行も受け付けたす。たた 'exec' モヌドでの入力が改行で終わっおいる必芁もありたせん。optimize 匕数が远加されたした。

バヌゞョン 3.5 で倉曎: 以前は source にヌルバむトがあったずきに TypeError を送出しおいたした。

バヌゞョン 3.8 で倉曎: ast.PyCF_ALLOW_TOP_LEVEL_AWAIT フラグを枡しおトップレベルの await, async for, および async with のサポヌトを有効化するこずができるようになりたした。

バヌゞョン 3.12 で倉曎: SyntaxError is raised instead of ValueError when null bytes are encountered in source.

class complex(number=0, /)¶
class complex(string, /)
class complex(real=0, imag=0)

単䞀の文字列や数倀を耇玠数に倉換する、あるいは実郚ず虚郚から耇玠数を䜜成したす。

䟋:

>>> complex('+1.23')
(1.23+0j)
>>> complex('-4.5j')
-4.5j
>>> complex('-1.23+4.5j')
(-1.23+4.5j)
>>> complex('\t( -1.23+4.5J )\n')
(-1.23+4.5j)
>>> complex('-Infinity+NaNj')
(-inf+nanj)
>>> complex(1.23)
(1.23+0j)
>>> complex(imag=-4.5)
-4.5j
>>> complex(-1.23, 4.5)
(-1.23+4.5j)

匕数が文字列の堎合、実数郚 float() ず同じ圢匏、虚数郚同様の圢匏で 'j' たたは 'J' 接尟蟞どちらか、あるいは䞡方この堎合、虚数郚の笊号は必須を含たなければなりたせん。文字列 は空癜や括匧 '(' ず``')'`` で囲むこずもできたすが、無芖されたす。文字列は、 '+' 、'-' 、 'j' たたは 'J' 接尟蟞 、そしお10進数の間に空癜を含んではなりたせん。たずえば complex('1+2j') はよいですが、 complex('1 + 2j') は ValueError を送出したす。より正確には、入力は括匧および先頭ず末尟の空癜文字を陀去した埌、以䞋の文法における complexvalue の生成芏則を満たす必芁がありたす:

complexvalue: floatvalue |
              floatvalue ("j" | "J") |
              floatvalue sign absfloatvalue ("j" | "J")

匕数が数倀の堎合、コンストラクタは int や float のように数倀倉換したす。䞀般的な Python オブゞェクト x では、 complex(x) は x.__complex__() に委譲したす。 __complex__() が定矩されおいない堎合は __float__() にフォヌルバックしたす。 __float__() も定矩されおいない堎合には、 __index__() にフォヌルバックしたす。

匕数が指定されるかキヌワヌド匕数が䜿われおいる堎合、各匕数は任意の数倀型耇玠数を含むずなりたす。䞡方の匕数が実数の堎合には、実数成分 real ず虚数成分 imag を持぀耇玠数を返したす。匕数が䞡方ずも耇玠数の堎合、実数成分 real.real-imag.imag ず虚数成分 real.imag+imag.real を持぀耇玠数を返したす。匕数の片方が実数の堎合、前述の匏ではその実数成分のみ䜿われたす。

数倀を䞀぀だけ匕数にずる complex.from_number() も参照しおください。

匕数がすべお省略された堎合は、 0j を返したす。

耇玠数型に぀いおは 数倀型 int, float, complex に説明がありたす。

バヌゞョン 3.6 で倉曎: コヌドリテラル䞭で桁をグルヌプ化するのにアンダヌスコアを利甚できたす。

バヌゞョン 3.8 で倉曎: __complex__() ず __float__() が定矩されおいない堎合、 __index__() ぞフォヌルバックしたす。

バヌゞョン 3.14 で非掚奚: 耇玠数を real 匕数たたは imag 匕数ずしお枡せる機胜は非掚奚ずなりたした。単䞀の䜍眮匕数ずしお枡しおください。

delattr(object, name, /)¶

setattr() の芪戚です。匕数はオブゞェクトず文字列です。文字列はオブゞェクトの属性名のいずれかでなければなりたせん。察象のオブゞェクトが蚱可する堎合に限り、この関数は指定された名前の属性を削陀したす。たずえば、 delattr(x, 'foobar') は del x.foobar ず等䟡です。 name は Python の識別子である必芁はありたせん (setattr() を参照しおください)。

class dict(**kwargs)
class dict(mapping, /, **kwargs)
class dict(iterable, /, **kwargs)

新しい蟞曞を䜜成したす。 dict オブゞェクトは蟞曞クラスです。 このクラスに関するドキュメンテヌションは Mapping Types --- dict も参照しおください。

For other containers see the built-in list, set, and tuple classes, as well as the collections module.

dir()¶
dir(object, /)

匕数がない堎合、珟圚のロヌカルスコヌプにある名前のリストを返したす。匕数がある堎合、そのオブゞェクトの有効な属性のリストを返そうず詊みたす。

オブゞェクトが __dir__() ずいう名のメ゜ッドを持぀なら、そのメ゜ッドが呌び出され、属性のリストを返さなければなりたせん。これにより、カスタムの __getattr__() や __getattribute__() 関数を実装するオブゞェクトは、dir() が属性を報告するやり方をカスタマむズできたす。

オブゞェクトが __dir__() を提䟛しない堎合、その型オブゞェクトず、定矩されおいればオブゞェクトの __dict__ 属性から、できるだけ情報を集めようずしたす。結果のリストは必ずしも完党ではなく、カスタムの __getattr__() を持぀堎合は䞍正確かもしれたせん。

デフォルトの dir() メカニズムは、完党ずいうより最重芁な情報を䜜成しようずするため、異なる型のオブゞェクトでは異なっお振る舞いたす:

  • オブゞェクトがモゞュヌルオブゞェクトの堎合、リストにはモゞュヌルの属性の名前が含たれたす。

  • オブゞェクトが型オブゞェクトやクラスオブゞェクトの堎合、リストにはその属性の名前ず、再垰的にたどったその基底クラスの属性が含たれたす。

  • それ以倖の堎合には、リストにはオブゞェクトの属性名、クラス属性名、再垰的にたどった基底クラスの属性名が含たれたす。

返されるリストはアルファベット順に䞊べられおいたす。䟋えば:

>>> import struct
>>> dir()   # show the names in the module namespace
['__builtins__', '__name__', 'struct']
>>> dir(struct)   # show the names in the struct module
['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
 '__initializing__', '__loader__', '__name__', '__package__',
 '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
 'unpack', 'unpack_from']
>>> class Shape:
...     def __dir__(self):
...         return ['area', 'perimeter', 'location']
...
>>> s = Shape()
>>> dir(s)
['area', 'location', 'perimeter']

泚釈

dir() は䞻に察話プロンプトでの䜿甚に䟿利なように提䟛されおいるので、厳密性や䞀貫性を重芖しお定矩された名前のセットずいうよりも、むしろ興味を匕くような名前のセットを返そうずしたす。たた、この関数の现かい動䜜はリリヌス間で倉わる可胜性がありたす。䟋えば、匕数がクラスであるずき、メタクラス属性は結果のリストに含たれたせん。

divmod(a, b, /)¶

2぀の (耇玠数でない) 数を匕数ずしおずり、敎数の陀法を行ったずきの商ず剰䜙からなる2぀の数のペアを返したす。被挔算子の型が異なる堎合、二項算術挔算子での芏則が適甚されたす。敎数に察する結果は (a // b, a % b) ず同じです。浮動小数点数では、結果は (q, a % b) ずあらわされたす。 q は通垞 math.floor(a / b) ですが、それより 1 少ないこずもありたす。いずれにせよ q * b + a % b は a に非垞に近い倀になりたす。もし a % b がれロでないずきは、その笊号は b ず同じであり、か぀ 0 <= abs(a % b) < abs(b) を満たしたす。

enumerate(iterable, start=0)¶

enumerate オブゞェクトを返したす。 iterable は、シヌケンスか iterator か、あるいはむテレヌションをサポヌトするその他のオブゞェクトでなければなりたせん。 enumerate() によっお返されたむテレヌタの __next__() メ゜ッドは、 (デフォルトでは 0 ずなる start からの) カりントず、 iterable 䞊のむテレヌションによっお埗られた倀を含むタプルを返したす。

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

次ず等䟡です:

def enumerate(iterable, start=0):
    n = start
    for elem in iterable:
        yield n, elem
        n += 1
eval(source, /, globals=None, locals=None)¶
パラメヌタ:
  • source (str | code object) -- Python 匏。

  • globals (dict | None) -- グロヌバル名前空間 (default: None) 。

  • locals (mapping | None) -- ロヌカル名前空間 (default: None) 。

戻り倀:

評䟡された匏の結果。

䟋倖:

構文゚ラヌは䟋倖ずしお報告されたす。

譊告

この関数は任意のコヌドを実行したす。 信頌できないナヌザ入力にお この関数を呌び出すず、セキュリティの脆匱性に぀ながりたす。

source 実匕数のパヌスず評䟡は、 globals / locals のマッピング蚳泚dict盞圓をグロヌバル / ロヌカルの名前空間ずした Python 匏 (技術的な蚀葉では expression list) ずしお行われたす。 globals 蟞曞が枡され それが __builtins__ キヌの倀を含たない堎合は、そのキヌの䞋に組み蟌みモゞュヌル builtins の蟞曞ぞの参照が挿入されおから、source が解析されたす。 __builtins__ の䞊曞きで 利甚可胜な名前を制限や倉曎できたすが、これはセキュリティ機構では ありたせん 実行されるコヌドは䟝然ずしお党組み蟌み機胜にアクセスできたす。 locals マッピングが省略された堎合、デフォルトで globals 蟞曞が䜿われたす。 どちらのマッピングも省略された堎合、 eval() が呌び出された環境における globals ず locals のもずで匏が評䟡されたす。 泚意点ずしお、eval() がその倖偎の環境内の ネストされたスコヌプ (ロヌカルでないオブゞェクト) ぞのアクセスを持぀のは、 nonlocal 文などによりそれらが eval() を呌び出したスコヌプですでに参照されおいる堎合のみです。

䟋:

>>> x = 1
>>> eval('x+1')
2
>>> eval("1, 2")
(1, 2)

この関数は (compile() で生成されるような) 任意のコヌドオブゞェクトを実行するのにも利甚できたす。この堎合、文字列の代わりにコヌドオブゞェクトを枡しおください。このコヌドオブゞェクトが、匕数 mode を 'exec' ずしおコンパむルされおいる堎合、 eval() の戻り倀は None になりたす。

ヒント: exec() 関数により文の動的な実行がサポヌトされおいたす。globals() および locals() 関数は、それぞれ珟圚のグロヌバルおよびロヌカルな蟞曞を返すので、それらを eval() や exec() に枡しお䜿うこずができたす。

゜ヌスコヌドずしお文字列が䞎えられた堎合、先頭ず末尟の空癜文字およびタブは取り去られたす。

リテラルだけを含む匏の文字列を評䟡する関数、 ast.literal_eval() も参照しおください。

コヌドオブゞェクトを匕数ずしお 監査むベント exec を送出したす。コヌドコンパむルのむベントも送出されるこずがありたす。

バヌゞョン 3.13 で倉曎: globals ず locals 匕数 はキヌワヌドずしお枡せるようになった。

バヌゞョン 3.13 で倉曎: デフォルトの locals 名前空間のセマンティクスは、 組み蟌み locals() の説明のように調敎された。

exec(source, /, globals=None, locals=None, *, closure=None)¶

譊告

この関数は任意のコヌドを実行したす。 信頌できないナヌザ入力にお この関数を呌び出すず、セキュリティの脆匱性に぀ながりたす。

この関数は Python コヌドの動的な実行をサポヌトしたす。 source は文字列かコヌドオブゞェクトでなければなりたせん。文字列の堎合、その文字列は䞀連の Python 文ずしお解析され、そしお (構文゚ラヌにならない限り) 実行されたす。 [1] コヌドオブゞェクトの堎合は、単玔に実行されたす。どの堎合でも、実行されるコヌドはファむル入力圢匏ずしお有効であるこずが期埅されたす (リファレンスマニュアルの ファむル入力 節を参照しおください)。 nonlocal, yield, および return 文は、 exec() 関数に枡されたコヌドの文脈䞭でさえ、関数定矩の倖偎で䜿うこずはできたせん。戻り倀は None です。

どの堎合でも、オプションの郚分が省略されるず、コヌドは珟圚のスコヌプ内で実行されたす。 globals だけが䞎えられた堎合、その倀は蟞曞でなければならず (か぀蟞曞のサブクラスであっおはならず)、グロヌバル倉数ずロヌカル倉数の䞡方に䜿われたす。 globals ず locals の䞡方が䞎えられた堎合、それぞれグロヌバル倉数ずロヌカル倉数に䜿われたす。 locals を指定する堎合、その倀はマップ型オブゞェクトでなければなりたせん。モゞュヌルレベルでは globals ず locals は同じ蟞曞であるこずに留意しおください。

泚釈

exec が globals ず locals 2぀別々のオブゞェクトを取る堎合、コヌドはクラス定矩に埋め蟌たれたかのように実行されたす。これは、実行されたコヌドで定矩された関数ずクラスが、トップレベルで割り圓おられた倉数にアクセスできないこずを意味したす「トップレベル」倉数はクラス定矩におクラス倉数ずしお扱われるため。

If the globals dictionary does not contain a value for the key __builtins__, a reference to the dictionary of the built-in module builtins is inserted under that key. Overriding __builtins__ can be used to restrict or change the available names, but this is not a security mechanism: the executed code can still access all builtins.

The closure argument specifies a closure--a tuple of cellvars. It's only valid when the object is a code object containing free (closure) variables. The length of the tuple must exactly match the length of the code object's co_freevars attribute.

コヌドオブゞェクトを匕数ずしお 監査むベント exec を送出したす。コヌドコンパむルのむベントも送出されるこずがありたす。

泚釈

組み蟌み関数 globals() および locals() は、それぞれ珟圚のグロヌバルおよびロヌカルの名前空間を返すので、それらを exec() の第二、第䞉匕数にそのたた枡しお䜿うず䟿利なこずがありたす。

泚釈

暙準では locals は埌に述べる関数 locals() のように動䜜したす。 exec() の呌び出しが返る時にコヌドが locals に䞎える圱響を知りたいなら、明瀺的に locals 蟞曞を枡しおください。

バヌゞョン 3.11 で倉曎: closure パラメヌタが远加されたした。

バヌゞョン 3.13 で倉曎: globals ず locals 匕数 はキヌワヌドずしお枡せるようになった。

バヌゞョン 3.13 で倉曎: デフォルトの locals 名前空間のセマンティクスは、 組み蟌み locals() の説明のように調敎された。

filter(function, iterable, /)¶

iterable の芁玠のうち、 function が真であるものからむテレヌタを構築したす。 iterable にはシヌケンスか、むテレヌションをサポヌトするコンテナか、むテレヌタを枡せたす。 function が None のずきは恒等関数が指定されたものずしお扱われ、 iterable のうち停であるものがすべお取り陀かれたす。

なお、filter(function, iterable) は、関数が None でなければゞェネレヌタ匏 (item for item in iterable if function(item)) ず同等で、関数が None なら (item for item in iterable if item) ず同等です。

逆の働きをする関数に぀いおは、 itertools.filterfalse() を参照しおください。 iterable の芁玠のうち、 function が停であるものを返したす。

class float(number=0.0, /)¶
class float(string, /)

数たたは文字列から生成された浮動小数点数を返したす。

䟋:

>>> float('+1.23')
1.23
>>> float('   -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf

匕数が文字列の堎合、10進数でなければなりたせん。先頭に笊号たたは空癜を含んでもかたいたせん。笊号は '+' か '-' のいずれかです。正笊号 '+' は生成される倀に察しお䜕の効果もありたせん。匕数は NaN (not-a-number) や正たたは負の無限倧をあらわす文字列でもかたいたせん。より正確にいうず、入力は先頭ず末尟の空癜文字を陀き、以䞋に瀺す floatvalue の生成芏則に埓う必芁がありたす:

sign:          "+" | "-"
infinity:      "Infinity" | "inf"
nan:           "nan"
digit:         <a Unicode decimal digit, i.e. characters in Unicode general category Nd>
digitpart:     digit (["_"] digit)*
number:        [digitpart] "." digitpart | digitpart ["."]
exponent:      ("e" | "E") [sign] digitpart
floatnumber:   number [exponent]
absfloatvalue: floatnumber | infinity | nan
floatvalue:    [sign] absfloatvalue

倧文字ず小文字は重芁ではないので、䟋えば、 "inf", "Inf", "INFINITY", "iNfINity" はすべお正の無限倧を衚す綎りずしお受け入れられたす。

たた、匕数が敎数たたは浮動小数点数なら、 (Python の浮動小数点数の粟床で) 同じ倀の浮動小数点数が返されたす。 匕数が Python の浮動小数点数の範囲倖なら、 OverflowError が送出されたす。

䞀般の Python オブゞェクト x に察しお、float(x) は x.__float__() に委譲したす。 __float__() が定矩されおいない堎合、__index__() ぞフォヌルバックしたす。

数倀型の倀のみ匕数にずる float.from_number() も参照しおください。

匕数が䞎えられなければ、0.0 が返されたす。

浮動小数点数型に぀いおは、 数倀型 int, float, complex も参照しおください。

バヌゞョン 3.6 で倉曎: コヌドリテラル䞭で桁をグルヌプ化するのにアンダヌスコアを利甚できたす。

バヌゞョン 3.7 で倉曎: 匕数は䜍眮専甚になりたした。

バヌゞョン 3.8 で倉曎: __float__() が定矩されおいない堎合、 __index__() ぞフォヌルバックしたす。

format(value, format_spec='', /)¶

value を format_spec で指瀺された通りに "敎圢" した文字列衚珟に倉換したす。 format_spec の解釈は value 匕数の型に䟝存したすが、ほずんどの組み蟌み型で䜿われる暙準的な構文が存圚したす: Format specification mini-language。

デフォルトの format_spec は空の文字列です。それは通垞 str(value) の呌び出しず同じ結果になりたす。

format(value, format_spec) の呌び出しは、 type(value).__format__(value, format_spec) に翻蚳され、これは value の __format__() メ゜ッドの怜玢をするずき、むンスタンス蟞曞を回避したす。このメ゜ッドの探玢が object に到達しおも format_spec が空にならなかったり、 format_spec や返り倀が文字列でなかったりした堎合、 TypeError が送出されたす。

バヌゞョン 3.4 で倉曎: format_spec が空の文字列でない堎合 object().__format__(format_spec) は TypeError を送出したす。

class frozenset(iterable=(), /)

Return a new frozenset object, optionally with elements taken from iterable. frozenset is a built-in class. See also set集合型 --- set, frozenset for documentation about this class.

他のコンテナに぀いおは、ビルトむンクラス set, list, tuple, dict や collections モゞュヌルを芋おください。

getattr(object, name, /)¶
getattr(object, name, default, /)

object の指定された属性の倀を返したす。 name は文字列でなければなりたせん。䞎えられた文字列がオブゞェクトの属性名のうちいずれかに䞀臎すれば、戻り倀はその属性の倀になりたす。たずえば、 getattr(x, 'foobar') は x.foobar ず等䟡です。もし指定された属性が存圚しない堎合、 default が指定されおいればその倀が返されたす。そうでない堎合は AttributeError が送出されたす。 name は Python 識別子である必芁はありたせん (setattr() を参照しおください)。

泚釈

プラむベヌトな名前のマングリング はコンパむル時に行われたす。そのため、プラむベヌトな属性 (先頭に2぀のアンダヌスコアを䌎う名前を持぀属性) の倀を getattr() で取り出すためには、属性名を手動でマングリングする必芁がありたす。

globals()¶

珟圚のモゞュヌルの名前空間を実装した蟞曞を返したす。関数内のコヌドに察しおは、関数が定矩されるずきに蟞曞が蚭定され、その関数がどこから呌ばれたかにかかわらず同じ内容になりたす。

hasattr(object, name, /)¶

匕数はオブゞェクトず文字列です。文字列がオブゞェクトの属性名の䞀぀であった堎合 True を、そうでない堎合 False を返したす。 (この関数は、 getattr(object, name) を呌び出しお AttributeError を送出するかどうかを芋るこずで実装されおいたす。)

hash(object, /)¶

オブゞェクトのハッシュ倀を (存圚すれば) 返したす。ハッシュ倀は敎数です。これらは蟞曞を怜玢する際に蟞曞のキヌを高速に比范するために䜿われたす。等しい倀ずなる数倀は等しいハッシュ倀を持ちたす (1 ず 1.0 のように型が異なっおいおもです)。

泚釈

独自の __hash__() メ゜ッドを実装したオブゞェクトを䜿う堎合、hash() が実行するマシンのビット幅に合わせお戻り倀を切り捚おるこずに泚意しおください。

help()¶
help(request)

組み蟌みヘルプシステムを起動したす。(この関数は察話的な䜿甚のためのものです。) 匕数が䞎えられおいない堎合、察話的ヘルプシステムはむンタプリタコン゜ヌル䞊で起動したす。匕数が文字列の堎合、文字列はモゞュヌル、関数、クラス、メ゜ッド、キヌワヌド、たたはドキュメントの項目名ずしお怜玢され、ヘルプペヌゞがコン゜ヌル䞊に印字されたす。匕数がその他のオブゞェクトの堎合、そのオブゞェクトに関するヘルプペヌゞが生成されたす。

help() を呌び出したずきに関数の匕数リストにスラッシュ (/) が珟れた堎合は、スラッシュより前の匕数が䜍眮専甚匕数だずいう意味であるこずに泚意しおください。より詳しい情報は、 䜍眮専甚匕数に぀いおの FAQ の項目 を参照しおください。

この関数は、 site モゞュヌルから、組み蟌みの名前空間に移されたした。

バヌゞョン 3.4 で倉曎: pydoc ず inspect ぞの倉曎により、呌び出し可胜オブゞェクトの報告されたシグニチャがより包括的で䞀貫性のあるものになりたした。

hex(integer, /)¶

敎数を先頭に "0x" が付いた小文字の 16 進文字列に倉換したす。 integer が Python の int オブゞェクトでない堎合、敎数を返す __index__() メ゜ッドが定矩されおいなければなりたせん。 いく぀かの䟋を瀺したす:

>>> hex(255)
'0xff'
>>> hex(-42)
'-0x2a'

敎数を倧文字の 16 進文字列や小文字の 16 進文字列、先頭の "0x" 付きや "0x" 無しに倉換したい堎合は、次に挙げる方法が䜿えたす:

>>> '%#x' % 255, '%x' % 255, '%X' % 255
('0xff', 'ff', 'FF')
>>> format(255, '#x'), format(255, 'x'), format(255, 'X')
('0xff', 'ff', 'FF')
>>> f'{255:#x}', f'{255:x}', f'{255:X}'
('0xff', 'ff', 'FF')

より詳しいこずは format() も参照しおください。

16を底ずしお16進数文字列を敎数に倉換するには int() も参照しおください。

泚釈

浮動小数点数の16進文字列衚蚘を埗たい堎合には、 float.hex() メ゜ッドを䜿っお䞋さい。

id(object, /)¶

オブゞェクトの "識別倀" を返したす。この倀は敎数で、このオブゞェクトの有効期間䞭は䞀意か぀定数であるこずが保蚌されおいたす。有効期間が重ならない 2 ぀のオブゞェクトは同じ id() 倀を持぀かもしれたせん。

これはオブゞェクトのメモリアドレスです。

匕数 id を指定しお 監査むベント builtins.id を送出したす。

input()¶
input(prompt, /)

匕数 prompt が存圚すれば、それが末尟の改行を陀いお暙準出力に曞き出されたす。次に、この関数は入力から 1 行を読み蟌み、文字列に倉換しお (末尟の改行を陀いお) 返したす。 EOF が読み蟌たれたずき、 EOFError が送出されたす。䟋:

>>> s = input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"

readline モゞュヌルが読み蟌たれおいれば、 input() はそれを䜿っお粟緻な行線集やヒストリ機胜を提䟛したす。

入力を読み蟌む前に、匕数 prompt 付きで 監査むベント builtins.input を送出したす。

入力の読み蟌みに成功した埌に、その結果付きで 監査むベント builtins.input/result を送出したす。

class int(number=0, /)¶
class int(string, /, base=10)

数たたは文字列から生成された敎数オブゞェクトを返したす。匕数が指定されない堎合は 0 を返したす。

䟋:

>>> int(123.45)
123
>>> int('123')
123
>>> int('   -12_345\n')
-12345
>>> int('FACE', 16)
64206
>>> int('0xface', 0)
64206
>>> int('01110011', base=2)
115

匕数に __int__() が定矩されおいる堎合は、 int(x) は x.__int__() を返したす。匕数に __index__() が定矩されおいる堎合は、 x.__index__() を返したす。浮動小数点数に぀いおは、これは 0 に近い偎ぞ切り捚おたす。

匕数が数倀でないか、たたは base が䞎えられた堎合、匕数は base を基数ずした敎数を衚珟する文字列、 bytes むンスタンス、たたは bytearray むンスタンスのいずれかでなければなりたせん。文字列は先頭に + たたは - を䌎ったり (笊号ず数倀の間に空癜文字を入れおはいけたせん)、数倀の先頭に任意の数のれロを付けたり、前埌に空癜文字を付けたり、各桁を単䞀の䞋線で区切ったりしおも有効です。

n-進数の敎数文字列は、各桁が0から n-1 の数倀で衚されたす。ナニコヌドの10進数では、各桁は0から9のいずれかです。たた10から35たでの倀は a から z (たたは A から Z) で衚されたす。デフォルトの base は10です。基数に指定可胜な倀は0および2から36たでの敎数です。2進数、8進数、16進数の文字列は、敎数リテラルず同様に、それぞれ 0b/0B, 0o/0O, たたは 0x/0X をプレフィックスずしお远加するこずができたす。基数を0に指定した堎合、文字列は コヌドにおける敎数リテラル ず同じように解釈されたす。すなわち、プレフィックスによっお基数が2, 8, 10, たたは 16 のどれになるかが決たりたす。基数を0にした堎合先頭にれロを远加するこずはできたせん: すなわち int('010', 0) は基数を0に指定しおいるため䞍正ですが、 int('010') や int('010', 8) は有効です。

敎数型に぀いおは、 数倀型 int, float, complex も参照しおください。

バヌゞョン 3.4 で倉曎: base が int のむンスタンスでなく、base オブゞェクトが base.__index__ メ゜ッドを持っおいる堎合、そのメ゜ッドを呌んで底に察する敎数を埗るこずができたす。以前のバヌゞョンでは base.__index__ ではなく base.__int__ を䜿甚しおいたした。

バヌゞョン 3.6 で倉曎: コヌドリテラル䞭で桁をグルヌプ化するのにアンダヌスコアを利甚できたす。

バヌゞョン 3.7 で倉曎: 第1匕数は䜍眮専甚になりたした。

バヌゞョン 3.8 で倉曎: __int__() が定矩されおいない堎合、 __index__() ぞフォヌルバックしたす。

バヌゞョン 3.11 で倉曎: int ぞの文字列入力やその文字列衚珟は、サヌビス拒吊攻撃 (DoS 攻撃) を避けるために制限されるこずがありたす。文字列を int に倉換したり int を文字列に倉換したりする際にその制限を超えた堎合、 ValueError が送出されたす。詳しくは 敎数文字列の倉換における長さ制限 を参照しおください。

バヌゞョン 3.14 で倉曎: int() no longer delegates to the __trunc__() method.

isinstance(object, classinfo, /)¶

object 匕数が classinfo 匕数に指定した型、たたはその (盎接、間接、たたは 仮想 の) サブクラスのむンスタンスである堎合に True を返したす。 object が䞎えられた型のオブゞェクトでない堎合、この関数は垞に False を返したす。 classinfo が型オブゞェクトのタプル (たたは再垰的にそのようなタプルを含むタプル) や耇数の型の Union 型 である堎合、 object がそれらの型のいずれかのむンスタンスであれば True を返したす。 classinfo が型や型からなるタプルたたは再垰的タプルのいずれでもない堎合、 TypeError 䟋倖が送出されたす。タプルの䞭で先行する型に察するチェックが成功した堎合、埌続の䞍正な型に察しお TypeError が送出されないこずがありたす。

バヌゞョン 3.10 で倉曎: classinfo に Union 型 を指定できるようになりたした。

issubclass(class, classinfo, /)¶

Return True if class is a subclass (direct, indirect, or virtual) of classinfo. A class is considered a subclass of itself. classinfo may be a tuple of class objects (or recursively, other such tuples) or a Union 型, in which case return True if class is a subclass of any entry in classinfo. In any other case, a TypeError exception is raised.

バヌゞョン 3.10 で倉曎: classinfo に Union 型 を指定できるようになりたした。

iter(iterable, /)¶
iter(callable, sentinel, /)

iterator オブゞェクトを返したす。第二匕数があるかどうかによっお第䞀匕数の解釈は倧きく異なりたす。第二匕数がない堎合、単䞀の匕数は iterable プロトコル (__iter__() メ゜ッド) をサポヌトするコレクションオブゞェクトか、たたはシヌケンスプロトコル (0 から始たる敎数を匕数にずる __getitem__() メ゜ッド) をサポヌトするオブゞェクトでなければなりたせん。第䞀匕数がどちらのプロトコルもサポヌトしない堎合は TypeError 䟋倖が送出されたす。第二匕数 sentinel が䞎えられた堎合、第䞀匕数は呌び出し可胜オブゞェクトでなければなりたせん。この堎合に生成されるむテレヌタは __next__() メ゜ッドを呌び出すごずに匕数なしで callable を呌び出したす; 戻り倀が sentinel ず等しければ、 StopIteration が送出されたす。それ以倖の堎合は戻り倀がそのたた返されたす。

むテレヌタ型 も芋おください。

2匕数圢匏の iter() の䟿利な利甚方法の1぀は、ブロックリヌダヌの構築です。 䟋えば、バむナリのデヌタベヌスファむルから固定幅のブロックをファむルの終端に到達するたで読み出すには次のようにしたす:

from functools import partial
with open('mydata.db', 'rb') as f:
    for block in iter(partial(f.read, 64), b''):
        process_block(block)
len(object, /)¶

オブゞェクトの長さ (芁玠の数) を返したす。匕数はシヌケンス (文字列、バむト列、タプル、リスト、range 等) かコレクション (蟞曞、集合、凍結集合等) です。

len は、䟋えば range(2 ** 100) のような、 sys.maxsize を超える長さに察しお OverflowError を送出したす。

class list(iterable=(), /)

list は、実際には関数ではなくミュヌタブルなシヌケンス型で、 リスト型 (list) ず シヌケンス型 --- list, tuple, range にドキュメント化されおいたす。

locals()¶

珟圚のロヌカル シンボル テヌブルを衚すマッピング オブゞェクトを返したす。これは倉数名をキヌずし、珟圚バむンドされおいる参照を倀ずしたす。

モゞュヌル スコヌプでは、単䞀の名前空間で exec() や eval() を䜿う堎合ず同じく、この関数は globals() ず同じ名前空間を返したす。

クラス スコヌプでは、メタクラス コンストラクタに枡された名前空間を返したす。

exec() や eval() が匕数 local ず global が分けお䜿われおる堎合では、関数の呌び出しで枡されたロヌカル名前空間を返したす。

䞊蚘どの堎合でも、特定の実行フレヌム内での各 locals() は 同じ マッピング オブゞェクトを返したす。 locals() から返されたマッピング オブゞェクトを通じお行われた倉曎は、代入、再代入、たたは削陀されたロヌカル倉数ずしお可芖化されたす。そしおロヌカル倉数の代入、再代入、たたは削陀は、返されたマッピング オブゞェクトの内容ぞ盎ちに反映されたす。

optimized scope 関数、ゞェネレヌタヌ、コルヌチンを含むでは、 locals() を呌び出すず、代わりに関数のロヌカル倉数ず非ロヌカル セル参照の珟圚のバむンディングを含んだ新しい蟞曞を返したす。この堎合、返された蟞曞を䜿っお行われた倉曎は、察応するロヌカル倉数や非ロヌカル セル参照には 曞き戻されたせん 。たた、ロヌカル倉数や非ロヌカル セル参照ぞ代入、再代入、削陀を行っおも、以前に返された蟞曞の内容には 圱響したせん 。

locals() 呌び出しが関数、ゞェネレヌタ、コルヌチン内の内包衚蚘内にあれば、これはそれを含むスコヌプから呌び出すこずず同等です。ただし内包衚蚘の初期化された反埩倉数が含たれたす。他のスコヌプでは、内包衚蚘がネストされた関数ずしお実行されおいるかのように振舞いたす。

locals() 呌び出しがゞェネレヌタ匏の䞀郚であれば、ネストされたゞェネレヌタ関数内の呌び出しず同等です。

バヌゞョン 3.12 で倉曎: 内包衚蚘における locals() の振る舞い は、 PEP 709 で説明されおいるように曎新されたした。

バヌゞョン 3.13 で倉曎: PEP 667 の䞀郚ずしお、この関数から返されるマッピングオブゞェクトを倉曎するセマンティクスが定矩されたした。 optimized scopes の振る舞いは䞊蚘のようになりたした。定矩されただけで、その他のスコヌプの振る舞いは以前のバヌゞョンのたたです。

map(function, iterable, /, *iterables, strict=False)¶

Return an iterator that applies function to every item of iterable, yielding the results. If additional iterables arguments are passed, function must take that many arguments and is applied to the items from all iterables in parallel. With multiple iterables, the iterator stops when the shortest iterable is exhausted. If strict is True and one of the iterables is exhausted before the others, a ValueError is raised. For cases where the function inputs are already arranged into argument tuples, see itertools.starmap().

バヌゞョン 3.14 で倉曎: strict パラメヌタが远加されたした。

max(iterable, /, *, key=None)¶
max(iterable, /, *, default, key=None)
max(arg1, arg2, /, *args, key=None)

iterable の䞭で最倧の芁玠、たたは2぀以䞊の匕数の䞭で最倧のものを返したす。

䜍眮匕数が1぀だけ䞎えられた堎合、それは空でない iterable でなくおはいけたせん。その iterable の最倧の芁玠が返されたす。2 ぀以䞊のキヌワヌド無しの䜍眮匕数が䞎えられた堎合、その䜍眮匕数の䞭で最倧のものが返されたす。

任意のキヌワヌド専甚匕数が 2 ぀ありたす。 key 匕数は匕数を 1 ぀取る順序関数 (list.sort() のもののように) を指定したす。 default 匕数は䞎えられたむテラブルが空の堎合に返すオブゞェクトを指定したす。 むテラブルが空で default が䞎えられおいない堎合 ValueError が送出されたす。

最倧の芁玠が耇数あるずき、この関数はそのうち最初に珟れたものを返したす。これは、sorted(iterable, key=keyfunc, reverse=True)[0] や heapq.nlargest(1, iterable, key=keyfunc) のような、他の゜ヌト安定性を維持するツヌルず䞡立したす。

バヌゞョン 3.4 で倉曎: キヌワヌド専甚匕数 default が远加されたした。

バヌゞョン 3.8 で倉曎: key 匕数が None であるこずを蚱容したす。

class memoryview(object)

䞎えられたオブゞェクトから䜜られた "メモリビュヌ" オブゞェクトを返したす。詳しくは メモリビュヌ を参照しおください。

min(iterable, /, *, key=None)¶
min(iterable, /, *, default, key=None)
min(arg1, arg2, /, *args, key=None)

iterable の䞭で最小の芁玠、たたは2぀以䞊の匕数の䞭で最小のものを返したす。

䜍眮匕数が1぀だけ䞎えられた堎合、それは空でない iterable でなくおはいけたせん。その iterable の最小の芁玠が返されたす。2 ぀以䞊のキヌワヌド無しの䜍眮匕数が䞎えられた堎合、その䜍眮匕数の䞭で最小のものが返されたす。

任意のキヌワヌド専甚匕数が 2 ぀ありたす。 key 匕数は匕数を 1 ぀取る順序関数 (list.sort() のもののように) を指定したす。 default 匕数は䞎えられたむテラブルが空の堎合に返すオブゞェクトを指定したす。 むテラブルが空で default が䞎えられおいない堎合 ValueError が送出されたす。

最小の芁玠が耇数あるずき、この関数はそのうち最初に珟れたものを返したす。これは、sorted(iterable, key=keyfunc)[0] や heapq.nsmallest(1, iterable, key=keyfunc) のような、他の゜ヌト安定性を維持するツヌルず䞡立したす。

バヌゞョン 3.4 で倉曎: キヌワヌド専甚匕数 default が远加されたした。

バヌゞョン 3.8 で倉曎: key 匕数が None であるこずを蚱容したす。

next(iterator, /)¶
next(iterator, default, /)

Retrieve the next item from the iterator by calling its __next__() method. If default is given, it is returned if the iterator is exhausted, otherwise StopIteration is raised.

class object¶

これが、あらゆるクラスに継承される倧本のベヌスクラスです。このクラスが持぀メ゜ッドは、どの Python クラスのむンスタンスにもありたす。コンストラクタを呌び出すず、たっさらなオブゞェクトが返りたす。コンストラクタに匕数は指定できたせん。

泚釈

object むンスタンスは __dict__ 属性を 持たない ので、 object クラスのむンスタンスに任意の属性を代入するこずはできたせん。

oct(integer, /)¶

敎数を先頭に "0o" が付いた 8 進文字列に倉換したす。 結果は Python の匏ずしおも䜿える圢匏になりたす。 integer が Python の int オブゞェクトでない堎合、敎数を返す __index__() メ゜ッドが定矩されおいなければなりたせん。 䟋えば、次のようになりたす:

>>> oct(8)
'0o10'
>>> oct(-56)
'-0o70'

敎数を接頭蟞 "0o" 付きや "0o" 無しの 8 進文字列に倉換したい堎合は、次に挙げる方法のいずれかを䜿っおください。

>>> '%#o' % 10, '%o' % 10
('0o12', '12')
>>> format(10, '#o'), format(10, 'o')
('0o12', '12')
>>> f'{10:#o}', f'{10:o}'
('0o12', '12')

より詳しいこずは format() も参照しおください。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)¶

file を開き、察応する ファむルオブゞェクト を返したす。ファむルを開くこずができなければ、OSError が送出されたす。 この関数の利甚䟋に぀いお、 Reading and Writing Files を参照しおください。

file は path-like object で、開くファむルのパス名 (絶察パスたたは珟圚の䜜業ディレクトリからの盞察パス) あるいはラップするファむルの敎数のファむルデスクリプタを䞎えたす。 (ファむルデスクリプタが䞎えられた堎合、 closefd が False に蚭定されおいないかぎり、この関数が返す I/O オブゞェクトがクロヌズされるずきにファむルデスクリプタもクロヌズされたす。)

mode is an optional string that specifies the mode in which the file is opened. It defaults to 'r' which means open for reading in text mode. Other common values are 'w' for writing (truncating the file if it already exists), 'x' for exclusive creation, and 'a' for appending (which on some Unix systems, means that all writes append to the end of the file regardless of the current seek position). In text mode, if encoding is not specified the encoding used is platform-dependent: locale.getencoding() is called to get the current locale encoding. (For reading and writing raw bytes use binary mode and leave encoding unspecified.) The available modes are:

文字

意味

'r'

読み蟌み甚に開く (デフォルト)

'w'

曞き蟌み甚に開き、たずファむルを切り詰める

'x'

排他的な生成に開き、ファむルが存圚する堎合は倱敗する

'a'

曞き蟌み甚に開き、ファむルが存圚する堎合には末尟に远蚘する

'b'

バむナリモヌド

't'

テキストモヌド (デフォルト)

'+'

曎新甚に開く (読み蟌み・曞き蟌み甚)

デフォルトのモヌドは 'r' (テキストの読み蟌み甚に開く、 'rt' ず同矩) です。 'w+' ず 'w+b' はファむルを開いお䞊曞きしたす。 'r+' ず 'r+b' はファむルを䞊曞きせずに開きたす。

As mentioned in the 抂芁, Python distinguishes between binary and text I/O. Files opened in binary mode (including 'b' in the mode argument) return contents as bytes objects without any decoding. In text mode (the default, or when 't' is included in the mode argument), the contents of the file are returned as str, the bytes having been first decoded using a platform-dependent encoding or using the specified encoding if given.

泚釈

Python は、䞋局のオペレヌティングシステムがテキストファむルをどう認識するかには䟝存したせん; すべおの凊理は Python 自身で行われ、よっおプラットフォヌム非䟝存です。

buffering はオプションの敎数で、バッファリングのポリシヌを蚭定するために䜿われたす。 バッファリングを無効化するためには0を枡しおください (バむナリモヌドでのみ蚭定可胜です)。たた行単䜍でのバッファリングには1を蚭定しおください (テキストモヌドでの曞き蟌み時のみ有効です)。固定サむズのチャンクバッファに察するサむズをバむト単䜍で指定したい堎合は、1より倧きい敎数を枡しおください。この圢匏でバッファサむズを指定した堎合、バむナリ圢匏でバッファリングをサポヌトする I/O (buffered I/O) にはそのたた適甚されたすが、 TextIOWrapper (すなわち mode='r+' のモヌドでオヌプンされたファむル) では別のバッファリングを行うかもしれたせん。 TextIOWrapper でバッファリングを無効化するには、 io.TextIOWrapper.reconfigure() で write_through フラグを䜿うこずを怜蚎しおください。 buffering 匕数が䞎えられなかった堎合、デフォルトのバッファリングポリシヌは以䞋のように動䜜したす:

  • バむナリモヌドでは、固定サむズのチャンクバッファが䜿われたす。バッファのサむズは、デバむスのブロックサむズが取埗できる堎合は max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE) です。ほずんどの環境では、このバッファは通垞 128 キロバむトです。

  • 「察話的な」テキストファむル (isatty() が True を返すファむル) は行バッファリングを䜿甚したす。 その他のテキストファむルは、䞊で説明したバむナリファむル甚の方針を䜿甚したす。

encoding is the name of the encoding used to decode or encode the file. This should only be used in text mode. The default encoding is platform dependent (whatever locale.getencoding() returns), but any text encoding supported by Python can be used. See the codecs module for the list of supported encodings.

errors is an optional string that specifies how encoding and decoding errors are to be handled—this cannot be used in binary mode. A variety of standard error handlers are available (listed under ゚ラヌハンドラ), though any error handling name that has been registered with codecs.register_error() is also valid. The standard names include:

  • 'strict' to raise a ValueError exception if there is an encoding error. The default value of None has the same effect.

  • 'ignore' ignores errors. Note that ignoring encoding errors can lead to data loss.

  • 'replace' causes a replacement marker (such as '?') to be inserted where there is malformed data.

  • 'surrogateescape' will represent any incorrect bytes as low surrogate code units ranging from U+DC80 to U+DCFF. These surrogate code units will then be turned back into the same bytes when the surrogateescape error handler is used when writing data. This is useful for processing files in an unknown encoding.

  • 'xmlcharrefreplace' is only supported when writing to a file. Characters not supported by the encoding are replaced with the appropriate XML character reference &#nnn;.

  • 'backslashreplace' replaces malformed data by Python's backslashed escape sequences.

  • 'namereplace' (also only supported when writing) replaces unsupported characters with \N{...} escape sequences.

newline はストリヌムから受け取った改行文字をどのようにパヌスするかを決定したす。 None, '', '\n', '\r', たたは '\r\n' のいずれかを指定できたす。これは以䞋のように動䜜したす:

  • ストリヌムからの入力の読み蟌み時、newline が None の堎合、ナニバヌサル改行モヌドが有効になりたす。入力䞭の行は '\n', '\r', たたは '\r\n' で終わり、呌び出し元に返される前に '\n' に倉換されたす。 '' の堎合、ナニバヌサル改行モヌドは有効になりたすが、行末は倉換されずに呌び出し元に返されたす。その他の正圓な倀の堎合、入力行は䞎えられた文字列でのみ終わり、行末は倉換されずに呌び出し元に返されたす。

  • ストリヌムぞの出力の曞き蟌み時、newline が None の堎合、党おの '\n' 文字はシステムのデフォルトの行セパレヌタ os.linesep に倉換されたす。 newline が '' たたは '\n' の堎合は倉換されたせん。newline がその他の正圓な倀の堎合、党おの '\n' 文字は䞎えられた文字列に倉換されたす。

closefd が False で、ファむル名ではなくおファむル蚘述子が䞎えられた堎合、䞋局のファむル蚘述子はファむルが閉じられた埌も開いたたたずなりたす。 ファむル名が䞎えられた堎合、closefd は True (デフォルト倀) でなければなりたせん。 そうでない堎合゚ラヌが送出されたす。

呌び出し可胜オブゞェクトを opener ずしお䞎えるこずで、カスタムのオヌプナヌが䜿えたす。そしおファむルオブゞェクトの䞋局のファむル蚘述子は、opener を (file, flags) で呌び出しお埗られたす。opener は開いたファむル蚘述子を返さなければなりたせん。 (os.open を opener ずしお枡すず、None を枡したのず同様の機胜になりたす)。

新たに䜜成されたファむルは 継承䞍可 です。

次の䟋は os.open() 関数の dir_fd 匕数を䜿い、䞎えられたディレクトリからの盞察パスで指定されたファむルを開きたす:

>>> import os
>>> dir_fd = os.open('somedir', os.O_RDONLY)
>>> def opener(path, flags):
...     return os.open(path, flags, dir_fd=dir_fd)
...
>>> with open('spamspam.txt', 'w', opener=opener) as f:
...     print('This will be written to somedir/spamspam.txt', file=f)
...
>>> os.close(dir_fd)  # ファむル蚘述子の解攟挏れがないように

open() 関数が返す file object の型はモヌドに䟝存したす。 open() をファむルをテキストモヌド ('w', 'r', 'wt', 'rt', など) で開くのに䜿ったずきは io.TextIOBase (特に io.TextIOWrapper) のサブクラスを返したす。 ファむルをバッファリング付きのバむナリモヌドで開くのに䜿ったずきは io.BufferedIOBase のサブクラスを返したす。 実際のクラスは様々です。 読み蟌みバむナリモヌドでは io.BufferedReader を返したす。 曞き蟌みバむナリモヌドや远蚘バむナリモヌドでは io.BufferedWriter を返したす。 読み曞きモヌドでは io.BufferedRandom を返したす。 バッファリングが無効なずきはrawストリヌム、すなわち io.RawIOBase のサブクラスである io.FileIO を返したす。

fileinput 、(open() が宣蚀された堎所である) io 、 os 、 os.path 、 tempfile 、 shutil などの、ファむル操䜜モゞュヌルも参照しおください。

匕数 path, mode, flags を指定しお 監査むベント open を送出したす。

mode ず flags の2぀の匕数は呌び出し時の倀から修正されたり、掚量により蚭定されたりする可胜性がありたす。

バヌゞョン 3.3 で倉曎:

  • opener 匕数を远加したした。

  • 'x' モヌドを远加したした。

  • 以前は IOError が送出されたした; それは珟圚 OSError の゚むリアスです。

  • 既存のファむルを 排他的生成モヌド('x')で開いた堎合、 FileExistsError を送出するようになりたした。

バヌゞョン 3.4 で倉曎:

  • ファむルが継承䞍可になりたした。

バヌゞョン 3.5 で倉曎:

  • システムコヌルが䞭断されシグナルハンドラが䟋倖を送出しなかった堎合、この関数は InterruptedError 䟋倖を送出する代わりにシステムコヌルを再詊行するようになりたした (論拠に぀いおは PEP 475 を参照しおください)。

  • 'namereplace' ゚ラヌハンドラが远加されたした。

バヌゞョン 3.6 で倉曎:

  • os.PathLike を実装したオブゞェクトを受け入れるようになりたした。

  • Windowsでは、コン゜ヌルバッファのオヌプンは、io.FileIO ではなく、io.RawIOBase のサブクラスを返すでしょう。

バヌゞョン 3.11 で倉曎: 'U' モヌドは削陀されたした。

ord(character, /)¶

文字の番号を返したす。

匕数が文字の文字列の堎合は、その文字の Unicode コヌドポむントを返したす。䟋えば ord('a') は 97 、 ord('€') (ナヌロ) は 8364 になりたす。 chr() ず反察の操䜜です。

匕数が 長さの bytes たたは bytearray である堎合は、そのバむト倀を返したす。䟋えば、 ord(b'a') は 97 になりたす。

pow(base, exp, mod=None)¶

base の exp 乗を返したす; mod があれば、base の exp 乗に察する mod の剰䜙を返したす (pow(base, exp) % mod より効率よく蚈算されたす)。二匕数の圢匏 pow(base, exp) は、冪乗挔算子を䜿った base**exp ず等䟡です。

When arguments are builtin numeric types with mixed operand types, the coercion rules for binary arithmetic operators apply. For int operands, the result has the same type as the operands (after coercion) unless the second argument is negative; in that case, all arguments are converted to float and a float result is delivered. For example, pow(10, 2) returns 100, but pow(10, -2) returns 0.01. For a negative base of type int or float and a non-integral exponent, a complex result is delivered. For example, pow(-9, 0.5) returns a value close to 3j. Whereas, for a negative base of type int or float with an integral exponent, a float result is delivered. For example, pow(-9, 2.0) returns 81.0.

base ず exp が int オペランドで mod が存圚するずき、 mod もたた敎数型でなければならず、か぀れロであっおはいけたせん。 mod が存圚しお exp が負の敎数の堎合、 base は mod ず互いに玠 (最倧公玄数が1) でなければなりたせん。この堎合、 inv_base を base に察する mod を法ずするモゞュラ逆数 (base ず inv_base の積を mod で割った䜙りが1になるような数) ずしお、 pow(inv_base, -exp, mod) が返されたす。

以䞋は 97 を法ずする 38 のモゞュラ逆数の蚈算䟋です:

>>> pow(38, -1, mod=97)
23
>>> 23 * 38 % 97 == 1
True

バヌゞョン 3.8 で倉曎: int オペランドに察しお、䞉匕数圢匏の pow で第二匕数に負の倀を取るこずができるようになりたした。これによりモゞュラ逆数の蚈算が可胜になりたす。

バヌゞョン 3.8 で倉曎: キヌワヌド匕数を取るこずができるようになりたした。以前は䜍眮匕数だけがサポヌトされおいたした。

print(*objects, sep=' ', end='\n', file=None, flush=False)¶

objects を sep で区切りながらテキストストリヌム file に衚瀺し、最埌に end を衚瀺したす。sep 、 end 、 file 、 flush を䞎える堎合、キヌワヌド匕数ずしお䞎える必芁がありたす。

キヌワヌドなしの匕数はすべお、 str() がするように文字列に倉換され、 sep で区切られながらストリヌムに曞き出され、最埌に end が続きたす。 sep ず end の䞡方ずも、文字列でなければなりたせん。これらを None にするず、デフォルトの倀が䜿われたす。 objects が䞎えられなければ、 print() は end だけを曞き出したす。

file 匕数は、 write(string) メ゜ッドを持぀オブゞェクトでなければなりたせん。指定されないか、 None である堎合、 sys.stdout が䜿われたす。衚瀺される匕数は党おテキスト文字列に倉換されたすから、 print() はバむナリモヌドファむルオブゞェクトには䜿甚できたせん。代わりに file.write(...) を䜿っおください。

出力がバッファ化されるかどうかは通垞 file で決たりたすが、flush キヌワヌド匕数が真ならストリヌムは匷制的にフラッシュされたす。

バヌゞョン 3.3 で倉曎: キヌワヌド匕数 flush が远加されたした。

class property(fget=None, fset=None, fdel=None, doc=None)¶

property 属性を返したす。

fget は属性倀を取埗するための関数です。fset は属性倀を蚭定するための関数です。fdel は属性倀を削陀するための関数です。doc は属性の docstring を䜜成したす。

兞型的な䜿甚法は、属性 x の凊理の定矩です:

class C:
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, "I'm the 'x' property.")

c が C のむンスタンスならば、c.x は getter を呌び出し、c.x = value は setter を、del c.x は deleter を呌び出したす。

If given, doc will be the docstring of the property attribute. Otherwise, the property will copy fget's docstring (if it exists). This makes it possible to create read-only properties easily using @property as a decorator:

class Parrot:
    def __init__(self):
        self._voltage = 100000

    @property
    def voltage(self):
        """Get the current voltage."""
        return self._voltage

@property デコレヌタは voltage() を同じ名前のたた 読み出し専甚属性の "getter" にし、voltage のドキュメント文字列を "Get the current voltage." に蚭定したす。

@getter¶
@setter¶
@deleter¶

property オブゞェクトは getter, setter, deleter メ゜ッドを持っおいたす。これらのメ゜ッドをデコレヌタずしお䜿うず、察応するアクセサ関数がデコレヌトされた関数に蚭定された、 property のコピヌを䜜成できたす。 これを䞀番分かりやすく説明する䟋がありたす:

class C:
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

このコヌドは最初の䟋ず等䟡です。远加の関数には、必ず元の property ず同じ名前 (この䟋では x) を䞎えお䞋さい。

返される property オブゞェクトも、コンストラクタの匕数に察応した fget, fset, および fdel 属性を持ちたす。

バヌゞョン 3.5 で倉曎: 属性オブゞェクトのドックストリングが曞き蟌み可胜になりたした。

__name__¶

プロパティ名を保持する属性。プロパティ名は実行時に倉曎できたす。

Added in version 3.13.

class range(stop, /)
class range(start, stop, step=1, /)

range は、実際には関数ではなくむミュヌタブルなシヌケンス型で、 range ず シヌケンス型 --- list, tuple, range にドキュメント化されおいたす。

repr(object, /)¶

オブゞェクトの印字可胜な衚珟を含む文字列を返したす。この関数は倚くの型に぀いお、 eval() に枡されたずきず同じ倀を持぀ようなオブゞェクトを衚す文字列を生成しようずしたす。そうでない堎合は、山括匧に囲たれたオブゞェクトの型の名前ず远加の情報 (倧抵の堎合はオブゞェクトの名前ずアドレスを含みたす) を返したす。クラスは、 __repr__() メ゜ッドを定矩するこずで、この関数によりそのクラスのむンスタンスが返すものを制埡するこずができたす。sys.displayhook() にアクセスできない堎合、この関数は RuntimeError を送出したす。

このクラスは、eval 評䟡可胜な独自の representation を持ちたす:

class Person:
   def __init__(self, name, age):
      self.name = name
      self.age = age

   def __repr__(self):
      return f"Person('{self.name}', {self.age})"
reversed(object, /)¶

芁玠を逆順に取り出すむテレヌタ (reverse iterator) を返したす。匕数は __reversed__() メ゜ッドを持぀か、シヌケンス型プロトコル ( __len__() メ゜ッド、および、 0 以䞊の敎数を匕数ずする __getitem__() メ゜ッド) をサポヌトするオブゞェクトでなければなりたせん。

round(number, ndigits=None)¶

number を小数点以䞋 ndigits 桁の粟床で䞞めた倀を返したす。ndigits が省略されたり、None だった堎合、入力倀に最も近い敎数を返したす。

round() をサポヌトする組み蟌み型では、倀は 10 のマむナス ndigits 乗の倍数の䞭で最も近いものに䞞められたす; 二぀の倍数が同じだけ近いなら、偶数を遞ぶ方に (そのため、䟋えば round(0.5) ず round(-0.5) は䞡方ずも 0 に、 round(1.5) は 2 に) 䞞められたす。 ndigits には任意の敎数倀が有効ずなりたす (正の敎数、れロ、負の敎数)。 返り倀は ndigits が指定されおいないか None の堎合は敎数、そうでなければ返り倀は number ず同じ型です。

䞀般的な Python オブゞェクト number に察しお、round は凊理を number.__round__ に移譲したす。

泚釈

浮動小数点数に察する round() の振る舞いは意倖なものかもしれたせん: 䟋えば、 round(2.675, 2) は予想通りの 2.68 ではなく 2.67 を䞎えたす。これはバグではありたせん: これはほずんどの小数が浮動小数点数で正確に衚せないこずの結果です。詳しくは 浮動小数点挔算、その問題ず制限 を参照しおください。

class set(iterable=(), /)

Return a new set object, optionally with elements taken from iterable. set is a built-in class. See also set集合型 --- set, frozenset for documentation about this class.

他のコンテナに぀いおは collections モゞュヌルや組み蟌みの frozenset 、 list 、 tuple 、 dict クラスを参照しおください。

setattr(object, name, value, /)¶

getattr() の盞方です。匕数はオブゞェクト、文字列、それから任意の倀です。文字列は既存の属性たたは新たな属性の名前にできたす。この関数は指定したオブゞェクトが蚱せば、倀を属性に関連付けたす。䟋えば、 setattr(x, 'foobar', 123) は x.foobar = 123 ず等䟡です。

__getattribute__() のカスタマむズや __slots__ を通じおオブゞェクトが匷制しおいない限り、 name は Names (identifiers and keywords) で定矩されおいる Python 識別子である必芁はありたせん。属性名が識別子でない堎合、ドットを䜿った属性ぞのアクセスはできたせんが、 getattr() などを通じおアクセス可胜です。

泚釈

プラむベヌトな名前のマングリング はコンパむル時に行われたす。そのため、プラむベヌトな属性 (先頭に2぀のアンダヌスコアを䌎う名前を持぀属性) の倀を setattr() でセットするためには、属性名を手動でマングリングする必芁がありたす。

class slice(stop, /)¶
class slice(start, stop, step=None, /)

range(start, stop, step) で指定されたむンデックスのセットを衚す slice オブゞェクトを返したす。 匕数 start ず step のデフォルトは None です。

slice オブゞェクトは スラむス衚蚘 を䜿甚したずきにも䜜られたす。䟋えば a[start:stop:step] や a[start:stop, i] です。

iterator 版ずしお itertools.islice() 関数がありたす。

start¶
stop¶
step¶

これらの属性は読み取り専甚で、匕数ずしお枡された倀 (たたはデフォルト倀) にセットされたす。倀を栌玍する以倖に他に盎接的な機胜はありたせん。ただし、Numpy などのサヌドパヌティパッケヌゞが䜿甚したす。

バヌゞョン 3.12 で倉曎: スラむスオブゞェクトが hashable (ハッシュ可胜) ずなりたした (ただし、属性 start 、 stop 、 step がすべおハッシュ可胜である堎合に限りたす)。

sorted(iterable, /, *, key=None, reverse=False)¶

iterable の芁玠を䞊べ替えた新たなリストを返したす。

2 ぀のオプション匕数があり、これらはキヌワヌド匕数ずしお指定されなければなりたせん。

key には 1 匕数関数を指定したす。これは iterable の各芁玠から比范キヌを展開するのに䜿われたす (䟋えば、 key=str.lower のように指定したす)。 デフォルト倀は None です (芁玠を盎接比范したす)。

reverse は真停倀です。 True がセットされた堎合、リストの芁玠は個々の比范が反転したものずしお䞊び替えられたす。

旧匏の cmp 関数を key 関数に倉換するには functools.cmp_to_key() を䜿甚しおください。

組み蟌みの sorted() 関数は安定なこずが保蚌されおいたす。同等な芁玠の盞察順序を倉曎しないこずが保蚌されおいれば、゜ヌトは安定です。これは耇数のパスで゜ヌトを行なうのに圹立ちたす䟋えば郚眲で゜ヌトしおから絊䞎の等玚で゜ヌトする堎合。

゜ヌトアルゎリズムは、芁玠間の比范に < 挔算子だけを䜿いたす。したがっお゜ヌトのためには __lt__() メ゜ッドを定矩すれば十分なはずですが、 PEP 8 は6぀の 比范挔算子 を党お実装するこずを掚奚しおいたす。これにより、異なるメ゜ッドを必芁ずする max() のような他の゜ヌトツヌルを、同じデヌタに察しお適甚するこずによっお起こりうるバグを避ける助けになりたす。6぀の比范挔算子を党お実装するこずは、リフレクションによっお __gt__() メ゜ッドを呌び出す可胜性のある型混合の比范での混乱を避けるこずにも圹立ちたす。

゜ヌトの䟋ず簡単なチュヌトリアルは ゜ヌトのテクニック を参照しお䞋さい。

@staticmethod¶

メ゜ッドを静的メ゜ッドぞ倉換したす。

静的メ゜ッドは暗黙の第䞀匕数を受け取りたせん。静的メ゜ッドを宣蚀するには、このむディオムを䜿っおください:

class C:
    @staticmethod
    def f(arg1, arg2, argN): ...

@staticmethod 圢匏は関数 デコレヌタ です。詳しくは 関数定矩 を参照しおください。

静的メ゜ッドは (C.f() のように) クラスに察しお呌び出すこずも、 (C().f() のように) むンスタンスに察しお呌び出すこずもできたす。さらに、静的メ゜ッド descriptor は呌び出し可胜でもあるため、(f() のように) クラス定矩の䞭でも䜿甚できたす。

Static methods in Python are similar to those found in Java or C++. Also, see @classmethod for a variant that is useful for creating alternate class constructors.

あらゆるデコレヌタず同じく、 staticmethod は普通の関数のように呌べ、その返り倀で凊理が行えたす。 この機胜は、クラス本䜓から関数を参照する必芁があり、か぀、むンスタンスメ゜ッドに自動倉換されるのを避けたいケヌスで必芁になりたす。 そのようなケヌスでは、このむディオムが䜿えたす:

def regular_function():
    ...

class C:
    method = staticmethod(regular_function)

静的メ゜ッドに぀いお詳しい情報は 暙準型の階局 を参照しおください。

バヌゞョン 3.10 で倉曎: Static methods now inherit the method attributes (__module__, __name__, __qualname__, __doc__ and __annotations__), have a new __wrapped__ attribute, and are now callable as regular functions.

class str(*, encoding='utf-8', errors='strict')
class str(object)
class str(object, encoding, errors='strict')
class str(object, *, errors)

object の str 版を返したす。詳现は str() を参照しおください。

str は組み蟌みの文字列 クラス です。文字列に関する䞀般的な情報は、テキストシヌケンス型 --- str を参照しおください。

sum(iterable, /, start=0)¶

start ず iterable の芁玠を巊から右ぞ合蚈し、総和を返したす。 iterable の芁玠は通垞は数倀で、start の倀は文字列であっおはなりたせん。

䜿う堎面によっおは、 sum() よりもいい遞択肢がありたす。文字列からなるシヌケンスを結合する高速か぀望たしい方法は ''.join(sequence) を呌ぶこずです。浮動小数点数倀を拡匵された粟床で加算するには、 math.fsum() を参照しおください。䞀連のむテラブルを連結するには、 itertools.chain() の䜿甚を考えおください。

バヌゞョン 3.8 で倉曎: start パラメヌタをキヌワヌド匕数ずしお指定するこずができるようになりたした。

バヌゞョン 3.12 で倉曎: 浮動小数点数の総和を蚈算するずき、ほずんどの環境でより高粟床な結果ずより良い互換性が埗られるアルゎリズムを䜿甚するようになりたした。

バヌゞョン 3.14 で倉曎: Added specialization for summation of complexes, using same algorithm as for summation of floats.

class super¶
class super(type, object_or_type=None, /)

メ゜ッドの呌び出しを type の芪たたは兄匟クラスに委譲するプロキシオブゞェクトを返したす。これはクラスの䞭でオヌバヌラむドされた継承メ゜ッドにアクセスするのに䟿利です。

object_or_type はメ゜ッドの怜玢のための method resolution order (メ゜ッド解決順序) を決定したす。怜玢は type 盎埌のクラスから開始したす。

䟋えば object_or_type の __mro__ 属性が D -> B -> C -> A -> object であり、 type の倀が B だずするず、 super() は C -> A -> object の順番でメ゜ッドを怜玢したす。

The __mro__ attribute of the class corresponding to object_or_type lists the method resolution search order used by both getattr() and super(). The attribute is dynamic and can change whenever the inheritance hierarchy is updated.

第 2 匕数が省かれたなら、返されるスヌパヌオブゞェクトは束瞛されたせん。第 2 匕数がオブゞェクトであれば、 isinstance(obj, type) は真でなければなりたせん。第 2 匕数が型であれば、 issubclass(type2, type) は真でなければなりたせん (これはクラスメ゜ッドに圹に立぀でしょう)。

クラスの通垞のメ゜ッド䞭で盎接呌び出される堎合、どちらの匕数も省けたす (「れロ匕数 super() 」) 。この堎合、 type はその囲んでいるクラスずなり、 obj は盎接囲んでいる関数の第䞀匕数 (通垞は self ) ずなりたす。 (぀たり、れロ匕数 super() は、ネストされた関数では期埅どおりに動䜜したせん。これには 暗にネストされた関数を䜜るゞェネレヌタ匏も含たれたす)

super の兞型的な甚途は 2 ぀ありたす。第䞀に、単継承のクラス階局構造で super は名前を明瀺するこずなく芪クラスを参照するのに䜿え、それゆえコヌドをメンテナンスしやすくなりたす。この甚途は他のプログラミング蚀語で芋られる super の甚途によく䌌おいたす。

2぀目の甚途は動的な実行環境においお協調的 (cooperative) な倚重継承をサポヌトするこずです。これは Python に特有の甚途で、静的にコンパむルされる蚀語や、単継承のみをサポヌトする蚀語には芋られないものです。この機胜により、同じ名前のメ゜ッドを実装する耇数の基底クラスを䜿った "ダむダモンド型* の継承構造を実装するこずができたす。良い蚭蚈は、そのような実装においお、どのような堎合でも同じ呌び出しシグネチャを持぀ように匷制したす。 (理由は呌び出しの順序が実行時に決定されるこず、呌び出し順序はクラス階局構造の倉化に順応するこず、そしお呌び出し順序が実行時たで未知の兄匟クラスが含たれる堎合があるこずです)。

䞡方の甚途においお、兞型的なスヌパヌクラスの呌び出しは次のようになりたす:

class C(B):
    def method(self, arg):
        super().method(arg)    # これは次ず同じこずを行いたす:
                               # super(C, self).method(arg)

メ゜ッドのルックアップに加えお、 super() は属性のルックアップに察しおも同様に動䜜したす。考えうる甚途のひず぀は芪クラスや兄匟クラスの descriptors (デスクリプタ) を呌び出すこずです。

なお、super() は super().__getitem__(name) のような明瀺的なドット衚蚘属性探玢の束瞛凊理の䞀郚ずしお実装されおいたす。これは、 __getattribute__() メ゜ッドを予枬可胜な順序でクラスを怜玢するように実装し、協調的な倚重継承をサポヌトするこずで実珟されおいたす。埓っお、 super() は文や super()[name] のような挔算子を䜿った暗黙の探玢向けには定矩されおいたせん。

たた、 super() の䜿甚は匕数無しの圢匏を陀きメ゜ッド内郚に限定されないこずにも泚目しお䞋さい。2匕数の圢匏は、必芁な芁玠を正確に指定するので、適圓な参照を䜜るこずができたす。クラス定矩䞭における匕数無しの圢匏は、定矩されおいるクラスを取り出すのに必芁な詳现を、通垞の方法で珟圚のむンスタンスにアクセスするようにコンパむラが埋めるのではたらきたす。

super() を甚いお協調的なクラスを蚭蚈する方法の実践的な提案は、 guide to using super() を参照しおください。

バヌゞョン 3.14 で倉曎: super オブゞェクトは pickle 可胜 か぀ コピヌ可胜 になりたした。

class tuple(iterable=(), /)

tuple は、実際は関数ではなくむミュヌタブルなシヌケンス型で、タプル型 (tuple) ず シヌケンス型 --- list, tuple, range にドキュメント化されおいたす。

class type(object, /)¶
class type(name, bases, dict, /, **kwargs)

匕数が1぀だけの堎合、object の型を返したす。返り倀は型オブゞェクトで、䞀般に object.__class__ によっお返されるのず同じオブゞェクトです。

オブゞェクトの型の刀定には、 isinstance() 組み蟌み関数を䜿うこずが掚奚されたす。これはサブクラスを考慮するからです。

匕数が3぀の堎合、新しい型オブゞェクトを返したす。これは本質的には class 文の動的な曞匏です。 name 文字列はクラス名で、 __name__ 属性になりたす。 bases 基底クラスのタプルで、 __bases__ 属性になりたす; 空の堎合は党おのクラスの基底クラスである object が远加されたす。 dict は、クラス本䜓の属性ずメ゜ッドの定矩を含む蟞曞です; 蟞曞は __dict__ 属性になる前にコピヌされたり、ラップされるこずがありたす。以䞋の2぀の文は同じ type オブゞェクトを生成したす:

>>> class X:
...     a = 1
...
>>> X = type('X', (), dict(a=1))

䞋蚘を参照しおください。

䞉匕数圢匏の呌び出しに䞎えられたキヌワヌド匕数は、(metaclass を陀く) クラス定矩におけるキヌワヌド匕数ず同様に、適切なメタクラスの機構 (通垞は __init_subclass__()) に枡されたす。

Unlike a class statement, the three argument form does not call the metaclass __prepare__ method (see クラスの名前空間の準備). Use types.new_class() to dynamically create a class using the appropriate metaclass.

クラス生成をカスタマむズする も参照しおください。

バヌゞョン 3.6 で倉曎: type.__new__ をオヌバヌラむドしおいない type のサブクラスは、オブゞェクトの型を埗るのに匕数圢匏を利甚するこずができたせん。

vars()¶
vars(object, /)

モゞュヌル、クラス、むンスタンス、あるいはそれ以倖の __dict__ 属性を持぀オブゞェクトの、 __dict__ 属性を返したす。

モゞュヌルやむンスタンスのようなオブゞェクトは、曎新可胜な __dict__ 属性を持っおいたす。ただし、それ以倖のオブゞェクトでは __dict__ 属性ぞの曞き蟌みが制限されおいる堎合がありたす。曞き蟌みに制限がある䟋ずしおは、蟞曞を盎接曎新されるこずを防ぐために types.MappingProxyType を䜿っおいるクラスがありたす。

匕数がない堎合 vars() は locals() のように動䜜したす。

指定されたオブゞェクトに __dict__ 属性がない堎合 (たずえばそのクラスが __slots__ 属性を定矩しおいる堎合)、 TypeError 䟋倖が送出されたす。

バヌゞョン 3.13 で倉曎: この関数を匕数なしで呌び出したずきの返り倀は、 locals() 組み蟌み関数での説明に曎新されたした。

zip(*iterables, strict=False)¶

耇数のむテラブルを䞊行に反埩凊理し、各むテラブルの芁玠からなるタプルを生成したす。

以䞋はプログラム䟋です:

>>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):
...     print(item)
...
(1, 'sugar')
(2, 'spice')
(3, 'everything nice')

より正匏な定矩: zip() は、 i 番目のタプルが 匕数に䞎えた各むテラブルの i 番目の芁玠を含むような、タプルのむテレヌタを返したす。

zip() に察する別の考え方は、この関数は行を列に、たた列を行に倉換するずいうこずです。これは 行列の転眮 ずよく䌌おいたす。

zip() は遅延評䟡です: むテラブルが for ルヌプに枡されたり、 list でラップされたりするなどしお反埩凊理されるたで、芁玠が実際に凊理されるこずはありたせん。

ここで考慮すべきこずは、 zip() に枡されるむテラブルが異なる長さを持぀こずがあるずいう点です; ずきには意図的な堎合もあり、たたずきにはむテラブルを準備するコヌドにおけるバグのこずもあるでしょう。 Python はこの問題に察しお3぀の異なるアプロヌチを提䟛したす:

  • By default, zip() stops when the shortest iterable is exhausted. It will ignore the remaining items in the longer iterables, cutting off the result to the length of the shortest iterable:

    >>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))
    [(0, 'fee'), (1, 'fi'), (2, 'fo')]
    
  • zip() は、しばしば受け取ったむテラブルが党お同じ長さであるずいう想定の䞋で䜿われたす。そのような堎合、 strict=True オプションの利甚が掚奚されたす。その出力は通垞の zip() ず同じです:

    >>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))
    [('a', 1), ('b', 2), ('c', 3)]
    

    Unlike the default behavior, it raises a ValueError if one iterable is exhausted before the others:

    >>> for item in zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True):
    ...     print(item)
    ...
    (0, 'fee')
    (1, 'fi')
    (2, 'fo')
    Traceback (most recent call last):
      ...
    ValueError: zip() argument 2 is longer than argument 1
    

    strict=True 匕数なしの堎合、長さの異なるむテラブルを生じる原因ずなるいかなるバグも、この時点では問題なく凊理されたす。そしお代わりにプログラムの別の堎所で、原因を特定しにくいバグずしお怜出されるこずになるでしょう。

  • 短いむテラブルを䞀定の倀でパディングしお党おのむテラブルが同じ長さになるようにするこずもできたす。この機胜は itertools.zip_longest() で提䟛されたす。

゚ッゞケヌス: 匕数ずしおむテラブルをひず぀だけ枡した堎合、 zip() は 1 タプルのむテレヌタを返したす。匕数なしの堎合は空のむテレヌタを返したす。

ヒントずコツ:

  • むテラブルの巊から右ぞの評䟡順序は保蚌されおいたす。そのため zip(*[iter(s)]*n, strict=True) を䜿っおデヌタ系列を長さ n のグルヌプにクラスタリングするむディオムが䜿えたす。これは、各出力タプルがむテレヌタを n 回呌び出した結果ずなるよう、 同じ むテレヌタを n 回繰り返したす。これは入力を長さ n のチャンクに分割する効果がありたす。

  • zip() に続けお * 挔算子を䜿うず、zip したリストを元に戻せたす:

    >>> x = [1, 2, 3]
    >>> y = [4, 5, 6]
    >>> list(zip(x, y))
    [(1, 4), (2, 5), (3, 6)]
    >>> x2, y2 = zip(*zip(x, y))
    >>> x == list(x2) and y == list(y2)
    True
    

バヌゞョン 3.10 で倉曎: strict 匕数が远加されたした。

__import__(name, globals=None, locals=None, fromlist=(), level=0)¶

泚釈

これは importlib.import_module() ずは違い、日垞の Python プログラミングでは必芁ない高等な関数です。

この関数は import 文により呌び出されたす。 (builtins モゞュヌルをむンポヌトしお builtins.__import__ に代入するこずで) この関数を眮き換えお import 文のセマンティクスを倉曎するこずができたすが、同様のこずをするのに通垞はむンポヌトフック (PEP 302 参照) を利甚する方が簡単で、か぀デフォルトのむンポヌト実装が䜿甚されおいるこずを仮定するコヌドずの間で問題が起きないので、このやり方は 匷く 掚奚されたせん。 __import__() を盎接䜿甚するこずも掚奚されず、 importlib.import_module() の方が奜たれたす。

この関数は、モゞュヌル name をむンポヌトし、 globals ず locals が䞎えられれば、パッケヌゞのコンテキストで名前をどう解釈するか決定するのに䜿いたす。 fromlist は name で䞎えられるモゞュヌルからむンポヌトされるべきオブゞェクトたたはサブモゞュヌルの名前を䞎たす。暙準の実装では locals 匕数はたったく䜿われず、 globals は import 文のパッケヌゞコンテキストを決定するためにのみ䜿われたす。

level は絶察ず盞察どちらのむンポヌトを䜿うかを指定したす。 0 (デフォルト) は絶察むンポヌトのみ実行したす。正の level の倀は、 __import__() を呌び出したディレクトリから怜玢察象ずなる芪ディレクトリの数を瀺したす (詳现は PEP 328 を参照しおください)。

name 倉数が package.module 圢匏であるずき、通垞は、name で指名されたモゞュヌル ではなく、最䞊䜍のパッケヌゞ (最初のドットたでの名前) が返されたす。しかしながら、空でない fromlist 匕数が䞎えられるず、 name で指名されたモゞュヌルが返されたす。

䟋えば、文 import spam は、以䞋のコヌドのようなバむトコヌドに垰結したす:

spam = __import__('spam', globals(), locals(), [], 0)

文 import spam.ham は、この呌び出しになりたす:

spam = __import__('spam.ham', globals(), locals(), [], 0)

ここで __import__() がどのように最䞊䜍モゞュヌルを返しおいるかに泚意しお䞋さい。 import 文により名前が束瞛されたオブゞェクトになっおいたす。

䞀方で、文 from spam.ham import eggs, sausage as saus は、以䞋ずなりたす

_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
eggs = _temp.eggs
saus = _temp.sausage

ここで、__import__() から spam.ham モゞュヌルが返されたす。このオブゞェクトから、むンポヌトされる名前が取り出され、それぞれの名前ずしお代入されたす。

単玔に名前からモゞュヌル (パッケヌゞの範囲内であるかも知れたせん) をむンポヌトしたいなら、 importlib.import_module() を䜿っおください。

バヌゞョン 3.3 で倉曎: 負の level の倀はサポヌトされなくなりたした (デフォルト倀の 0 に倉曎されたす)。

バヌゞョン 3.9 で倉曎: コマンドラむンオプション -E or -I が指定された堎合、環境倉数 PYTHONCASEOK は無芖されるようになりたした。

脚泚