2016-09-04 11 views
2

私はPythonで組み込みオブジェクト()がセンチネルオブジェクトを返すことを知っています。私はそれが何であるか興味がありますが、主にアプリケーションです。Sentinelオブジェクトとそのアプリケーション?

ありがとうございました。

+0

https://docs.python.org/3/library/builtins.html https://docs.python.org/3/library/builtins.html https://docs.python.org/3/library/builtins.htmlたとえば、入力を受け入れる場合は.lower()を使用することができます。すべての小文字。したがって、条件入力はユーザーの入力を扱いやすくなります。 – thesonyman101

+0

これの例がありますか? – AhToyMaker

答えて

4

objectは、他のすべてのクラスがpython 3から継承する基本クラスです。普通の古いオブジェクトでできることはまったくありません。しかし、オブジェクトの識別番号が役に立ちます。たとえば、iter関数は、終了を停止するタイミングを通知するsentinel引数をとります。それにオブジェクト()を与えることができます。

sentinel = object() 

def step(): 
    inp = input('enter something: ') 
    if inp == 'stop' or inp == 'exit' or inp == 'done': 
     return sentinel 
    return inp 

for inp in iter(step, sentinel): 
    print('you entered', inp) 

これは、ユーザーが停止、終了、または完了を入力するまで入力を求めます。私は正確には、iterのセンチネルがジェネレータよりも有用であるとは確信していませんが、とにかく面白いと思います。

これがあなたの質問に答えるかどうかわかりません。明確にするために、これはちょうどobjectの可能なアプリケーションです。基本的には、Python言語でのその存在は、それがセンチネルの価値として(私の知る限り)利用可能であることとは何の関係もありません。

関連する問題