Python3
組み込み関数
予約語

Pythonの変数名で避けた方がいい名前は?


はじめに

未来電子テクノロジーでインターンをしている松井です。

*プログラミング初心者であるため、内容に誤りがあるかもしれません。

もし、誤りがあれば修正するのでどんどん指摘してください。


変数名で避けた方がいい名前は?

変数名で避けた方がいい名前は予約語組み込み関数です。


予約語(よやくご、英: reserved word)とは、プログラミング言語において字句的には識別子(変数名、関数名、クラス名など)としてのルールを満たしているにもかかわらず、識別子にならない字句要素。

出典:Wikipedia


予約語は上記の通りで、変数名に使えことができません。

Python(3.6.5)の時点で予約語は

 >>__import__('keyword').kwlist

['False','None','True','and','as','assert','break','class',
'continue','def','del','elif','else','except','finally',
'for','from','global','if','import','in','is','lambda','nonlocal',
'not','or','pass','raise','return','try','while','with','yield']

の33個です。

しかし、変数名には使えるが、使わない方がいい名前もあります。

それが、組み込み関数です。

Python(3.6.5)の時点で組み込み関数は

>> print(len(list(name for name in vars(__builtins__) if (name[0].islower() and name not in ('quit', 'exit', 'copyright', 'credits', 'license',)) or name=='__import__')))

['__import__', 'abs', 'all', 'any', 'ascii', 'bin', 'callable', 'chr', 'compile', 'delattr',
'dir', 'divmod', 'eval', 'exec', 'format', 'getattr', 'globals', 'hasattr', 'hash', 'hex',
'id', 'input', 'isinstance', 'issubclass', 'iter', 'len', 'locals', 'max', 'min', 'next',
'oct', 'ord', 'pow', 'print', 'repr', 'round', 'setattr', 'sorted', 'sum', 'vars', 'bool',
'memoryview', 'bytearray', 'bytes', 'classmethod', 'complex', 'dict', 'enumerate', 'filter',
'float', 'frozenset', 'property', 'int', 'list', 'map', 'object', 'range', 'reversed', 'set',
'slice', 'staticmethod', 'str', 'super', 'tuple', 'type', 'zip', 'open', 'help', 'display',
'get_ipython']

の70個です。

これらは変数名として、使えますが使わない方がいいとされています。

もし、変数名として使うと、衝突を起こしてコードが動かなくなるかもしれません。