私はDjangoの私のモデルでget_or_create
関数を使用しました。この関数は2つの値を返します。 1つはオブジェクト自体であり、もう1つは既存のオブジェクトが取得されたか新しいオブジェクトが作成されたかを示すブール値フラグです。Djangoのget_or_create関数はどのように2つの値を返しますか?
通常、関数は単一値またはtuple
、list
または辞書のような値の集合を返すことができます。
get_or_create
のような関数はどのように2つの値を返しますか?
私はDjangoの私のモデルでget_or_create
関数を使用しました。この関数は2つの値を返します。 1つはオブジェクト自体であり、もう1つは既存のオブジェクトが取得されたか新しいオブジェクトが作成されたかを示すブール値フラグです。Djangoのget_or_create関数はどのように2つの値を返しますか?
通常、関数は単一値またはtuple
、list
または辞書のような値の集合を返すことができます。
get_or_create
のような関数はどのように2つの値を返しますか?
get_or_create()
は、単に2つの値の組を返します。その後、documentationの例のように、二つの名前に2組のエントリをバインドするsequence unpackingを使用することができます。
p, created = Person.objects.get_or_create(
first_name='John', last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)})
それはタプルを返します。関数がこれを行うことができると知っていたように聞こえますが、結果を直接2つの変数に割り当てることはできません。
get_or_create
のためのDjangoのドキュメントを参照してください:
# Returns a tuple of (object, created), where object is the retrieved
# or created object and created is a boolean specifying whether a new
# object was created.
obj, created = Person.objects.get_or_create(first_name='John', last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)})
タプル/タプルアンパックを使用しては、多くの場合、複数の値を返すのquite "pythonic" wayとして考えられています。
実際にはタプルを返します。 – shanyu
2つの要素を持つタプルを返します。 'return(is_exit、object) ' – mouad
これを試してみましょう:' a = 1、2;印刷タイプ(a) '。それは確かにタプルです。 – TryPyPy