nama yang tepat untuk operator python *?

210

Apa nama yang tepat untuk operator *, seperti pada function(*args)? membongkar, membuka ritsleting, sesuatu yang lain?

Anycorn
sumber
9
Javascript memiliki operator spread yang setara ....
Wolfgang Kuehn

Jawaban:

170

Di Ruby dan Perl 6 ini disebut "percikan", dan saya pikir kebanyakan orang dari komunitas tersebut akan mencari tahu apa yang Anda maksud jika Anda menyebutnya begitu.

The Python tutorial menggunakan frase "membongkar daftar argumen", yang panjang dan deskriptif. Saya belum pernah mendengar nama khusus lainnya dengan Python.

singkat
sumber
90
tidak pernah mendengar / melihat "percikan" dalam sekitar 10 tahun menggunakan python.
Joe Koberg
8
Nah dalam python itu juga digunakan untuk mengemas daftar argumen, jadi dalam konteks itu haruskah itu disebut unsplat ? :)
John La Rooy
45
@ THC4k saya usulkan splatsplat.
Josh Lee
5
Sayangnya INTERCAL tidak memiliki *operator sehingga kami kekurangan sumber resmi ...
wberry
3
Dalam JavaScript (es2015) dikenal sebagai operator penyebaran .
Kutyel
119

Saya menyebutnya "ekspansi posisi", **yang saya sebut "ekspansi kata kunci".

Ignacio Vazquez-Abrams
sumber
49

The Python Tutorial hanya menyebutnya 'yang *-operator'. Itu melakukan pembongkaran daftar argumen sewenang - wenang .

Danilo Piazzalunga
sumber
1
Ini adalah jawaban yang paling akurat dan sayang sekali tidak diterima!
alfasin
3
@alfasin: Ungkapan 'the *-operator' bersifat ambigu karena *- tergantung pada konteksnya - dapat melakukan perluasan argumen atau perkalian yang merupakan dua operasi yang berbeda.
HelloGoodbye
1
@ HaloGoodbye dan itu benar-benar tidak sulit untuk memahami yang mana itu dari konteksnya.
alfasin
Sepertinya OP bertanya bagaimana cara mengucapkan (yang mungkin atau mungkin bukan kata itu sendiri - itu lubang kelinci lain) *. Dengan mengatakan itu *-operatoradalah hanya melemparkan pertanyaan kembali sebagai jawaban. OP mungkin ingin tahu bagaimana mengatakannya dengan keras (atau di kepalanya) ketika dia bertemu. Ini semua baru bagi saya, dan saya akan pergi dengan "percikan!".
elPastor
17

Saya mengatakan "star-args" dan orang-orang Python tampaknya tahu apa yang saya maksud.

**lebih rumit - saya pikir hanya "qargs" karena biasanya digunakan sebagai **kwatau**kwargs

John La Rooy
sumber
2
Saya juga hanya mengatakan kwargs, meskipun itu tidak benar-benar merujuk pada operator itu sendiri, saya kira.
TM.
14

Satu juga dapat memanggil *sebuah mengumpulkan parameter (bila digunakan dalam definisi fungsi argumen) atau Operator pencar (bila digunakan pada fungsi doa).

Seperti yang terlihat di sini: Pikirkan tupel argumen Python / Tuples / Variable-length .

Anton Strogonoff
sumber
1
tetapi Anda tidak bisa berteriak mengumpulkan atau menyebar seperti yang Anda bisa dengan SPLAT: D
Samantha Branham
@ SamanthaBranham Saya suka bagaimana mengumpulkan dan menyebarkan dapat dengan mudah dan jelas divisualisasikan. Tentu saja percikan memvisualisasikan hebat, juga 😂💥
Anton Strogonoff
7

Saya percaya ini paling sering disebut "operator percikan." Membongkar argumen adalah fungsinya.

Membuang
sumber
1

Saya memanggil * args "star args" atau "varargs" dan ** kwargs "args kata kunci".

wberry
sumber