2
私はPythonで組み込みオブジェクト()がセンチネルオブジェクトを返すことを知っています。私はそれが何であるか興味がありますが、主にアプリケーションです。Sentinelオブジェクトとそのアプリケーション?
ありがとうございました。
私はPythonで組み込みオブジェクト()がセンチネルオブジェクトを返すことを知っています。私はそれが何であるか興味がありますが、主にアプリケーションです。Sentinelオブジェクトとそのアプリケーション?
ありがとうございました。
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言語でのその存在は、それがセンチネルの価値として(私の知る限り)利用可能であることとは何の関係もありません。
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
これの例がありますか? – AhToyMaker