I ʻOkakopa 2019, ua hoʻolauna ʻo Python 3.8 i ka mea hoʻohana Walrus (:=) ma o PEP 572 - a ma laila i hoʻomaka ai kekahi o nā hoʻopaʻapaʻa nui loa i ka mōʻaukala o ka ʻōlelo papahana. Ua ʻawaʻawa loa ka hoʻopaʻapaʻa ʻana i ka Python inventor ʻO Guido van Rossum i Iulai 2018 - ma mua o ka hoʻokuʻu ʻana - kona kūlana ma BDFL (Ka Luna Hoʻokele lokomaikaʻi no ke ola). Mai ka hoʻomaka ʻana o 2019, ua hoʻokele ʻia ʻo Python e kahi ʻaha alakaʻi i koho ʻia.
if (n := len(items)) > 10:
print(f"List is too long ({n} elements)")
Ua ala koke mai ka mokuʻāina aupuni ma hope o ke kūkākūkā Walrus—he hihia kakaʻikahi i loaʻa i kahi hiʻohiʻona ʻōlelo hoʻokahi nā hopena hoʻolālā. I loko o kāna ʻōlelo, ua wehewehe ʻo van Rossum: "ʻO ka mauʻu hope loa he mea hoʻopaʻapaʻa nui ʻo Python Enhancement Proposal. Ma hope o koʻu ʻae ʻana, lawe ka poʻe i ka media media e like me Twitter a ʻōlelo mai i nā mea e hōʻeha iaʻu iho."
Ua hoʻomau ʻo ia: "I kēia manawa ua pau ka PEP 572, ʻaʻole au makemake e hakakā hou no ka PEP a ʻike i ka nui o ka poʻe e hoʻowahāwahā i kaʻu mau hoʻoholo. ʻAʻole i hele mai ka ʻōlelo hoʻohewa wale mai ke kaiāulu ākea, akā mai nā mea hoʻomohala kumu.
Ua hoʻopaʻapaʻa lākou ua kūʻē ka mea hoʻohana i nā loina Python kumu mai ka Zen o Python - ʻoi aku ka makemake o ka maʻalahi ma mua o ka paʻakikī. Ma hope o ʻekolu mau makahiki ma ke ʻano he mea hoʻolālā ʻōlelo hoʻopaʻapaʻa ʻole, ua hōʻailona kēia i ka hopena o kahi au. Akā ʻoiai ʻo Python e hoʻolauna i kahi mea hoʻohana Walrus hou, e hoʻokaʻawale ana i kona kaiāulu i ke kaʻina hana, ua kū mai ka nīnau: Pehea e hana ai nā ʻōlelo ʻē aʻe i nā manaʻo like?
ʻO ka mea hoʻohana Python := (Assignment Expression alias "Walrus") ʻaʻole i loaʻa ma PHP – no ka mea ʻaʻole pono ia. Ma PHP, ka mea hoʻohana hana = mau ʻO ka ʻōlelo a me ka ʻōlelo i ka manawa like: Hoʻihoʻi ka haʻawina i ka waiwai i hāʻawi ʻia. ʻO kēia ke kumu e hana ai nā ʻano idiomatic e like me "assign-and-test". if-kūlana me ka ʻole o kā lākou hiʻohiʻona ʻōlelo.
function get_some_field() {
return 'foo';
}
if ($a = get_some_field()) {
echo $a; // foo
}
// Hinweis: $a ist *gesetzt*, selbst wenn die Bedingung falsy wäre.
$a = get_some_field() hāʻawi a loiloi i ka ʻaoʻao ʻākau. Inā "ʻoiaʻiʻo" kēia, e komo ʻoe i ka if-Paʻa. Ma hope: Ma ka Python, := (PEP 572) no ka mea, ʻaʻole hōʻike nā haʻawina maʻalahi. Ma PHP, he ʻokoʻa kēia, no laila ʻaʻohe pono like. ʻElua mau mea e alakaʻi pinepine ai i nā pōpoki.: = (Assignment) he haʻahaʻa haʻahaʻa ma mua o ka hapa nui o nā mea hoʻohana pili; hoʻoholo nā pale i ka loiloi.
I nā ʻōlelo paʻakikī, pono ʻoe e hoʻohana i nā pale e hoʻonui i ka heluhelu a me ka maopopo. ?? loaʻa iā ia kona manaʻo ponoʻī. Hōʻike kēia i nā haʻalulu ma nā ʻōlelo like $x ?? null === null. Me ka ʻole o nā pale, mua null === null loiloi ʻia. ʻOi aku ka maikaʻi e hoʻopaʻa pono i nā manawa a pau: ($x ?? null) === null. $a aia ma waho o ka if-Blocks - me ka waiwai hoʻopunipuni.
function get_some_field() {
return 'bar';
}
if ( ($a = get_some_field()) === 'bar' ) {
echo $a; // bar
}
No laila ua maopopo === 'bar' hoʻohana ʻia i ka waiwai i hāʻawi ʻia. He mea koʻikoʻi nā bracket ma ʻaneʻi no ka heluhelu a me ka mea nui. I ka hoʻomaʻamaʻa ʻana, pale kēia ʻano i nā kelepona ʻole pono ʻole (e laʻa, o ka mea hana nīnau) ma ka mālama ʻana i ka hopena hulina a laila nānā iā ia. Ma nā noi huahua, e like me nā papahana Laravel, hiki ke ʻike pinepine ʻia ke ʻano ma lalo nei.:
if ( ($foo = Foo::where('foo', 'bar')) && $foo->count() > 0 ) {
dd($foo->get());
}
&& pōkole-pōkole: E loiloi wale ʻia ka ʻaoʻao ʻākau inā he ʻoiaʻiʻo ka ʻaoʻao hema. Ma ka hāʻawi ʻana i ka ʻōlelo i luna, pale ʻoe i ka hāʻawi ʻana i ka ʻōlelo ma waho o ka ʻōlelo inā. ʻO ka hoʻomaʻamaʻa maikaʻi paha kēia ma muli o ke code a me nā mea hana loiloi o kāu hui; ma ke ano, pololei. Ma ka liʻiliʻi loa, pono ʻoe e ʻike i ka hana a ke code inā ʻoe e hālāwai me ia ma ka nahele.
ʻAʻole pono ʻo PHP i kahi "Walrus operator" no ka mea, ua hōʻike mua nā haʻawina. Hiki i kēia ke hana i nā hiʻohiʻona idiomatic e like me "assign-and-test" hiki ke hana - hana a pōkole. I ka manawa like, hoʻonui ʻia nā koi no ka hoʻopaʻi ʻana: nā pale, nā hoʻohālikelike koʻikoʻi, ka ʻike ʻana i ka ʻoiaʻiʻo/ka hoʻopunipuni, a me nā hui hui ʻike pono. ʻO ka poʻe e hahai ana i kēia mau alakaʻi e ʻohi i nā pōmaikaʻi o ka manaʻo Walrus me ka ʻole e koi i kahi hiʻohiʻona ʻōlelo hou.