自分のコードでWordの「タイプ」を使用できますか、それとも予約されていますか?私の関数ヘッダー:
def get(
self,
region='Delhi',
city='Delhi',
category='Apartments',
type='For sale',
limit = 60,
PAGESIZE=5,
year=2012,
month=1,
day=1,
next_page=None,
threetapspage=0,
):
ありがとうございました
関数のキーワード引数としてtype
を使用すると、関数のスコープ内で 組み込み関数 "type" がマスクされます。したがって、そうすることでSyntaxError
が発生することはありませんが、それは良い習慣とは見なされず、そうすることは避けます。
どちらでもない。これは予約語ではありません(そのリストは http://docs.python.org/reference/lexical_analysis.html#keywords にあります)が、一般的に組み込みのシャドウを作成することはお勧めしません。
pythonビルトインをシャドウするのは悪い形だと他の人が指摘していますが、これは、関数または関数パラメーターにtype
と名前を付けた場合にのみ当てはまりますが、
クラス属性にtype
と名前を付けた場合、python組み込みtype
はシャドウされないことに注意してください。
クラス属性を参照する場合でも、クラスインスタンスself
またはカスタムインスタンス変数が常にプレフィックスとして付けられ、python組み込みが妨げられることはありません。
例えば:
>>> class SomeClass():
... type = 'foobar'
...
... def someFunction(self):
... return self.type
>>> def type(): # Overrides python built-in in global scope
... pass
...
>>> def foobar(type):
... return type # Overrides python built-in within func
type
は予約語と見なしてください。このWordをデータベースフィールドに使用するのは魅力的ですが、type()
はオブジェクトのclass
を通知するため、最も重要なデバッグ/テスト関数の1つであると考えてください。
$ python
>>> x = 5
>>> s = "rockets"
>>> y = [1,2,3]
>>> print(type(x))
class 'int'
>>> print(type(s))
class 'str'
>>> print(type(y))
class 'list'
アトラスは本の一種に分類されますが、代わりに単語「カテゴリ」の使用を検討してください。