Saya telah mengerjakan tutorial dan menemukan sintaks Python yang tidak dikenal. Mencari untuk mengidentifikasi apa namanya dan mempelajari cara kerjanya.

Kode Misteri

baris yang dimaksud melibatkan nama variabel yang dikelilingi oleh kurung kurawal sebelum disetel:

[pivot] = get_point_by_id(svg_tree, 'pivot')

Petunjuk yang Relevan untuk Jawaban yang Diposkan

Pikiran awal saya adalah bahwa itu ada hubungannya dengan disetel ke daftar sejak nilai pengembalian dari get_point_by_id adalah daftar.

Tidak tersentuh, kode berjalan dengan baik. Tetapi jika saya mencoba membuat ulang sintaks seperti ini:

[variable_name] = [1,2,3]
print(variable_name)

Saya mendapatkan kesalahan berikut:

ValueError: too many values to unpack (expected 1)
1
Zollie 17 September 2019, 00:17

2 jawaban

Jawaban Terbaik

Saya akan menebak dari posting Anda: dalam contoh pertama Anda, pivot adalah daftar yang bentuknya sama dengan pengembalian fungsional. Sebaliknya, variable_name pada nilai kedua bukan barisan tiga skalar.

Daftar mewakili urutan nilai; Anda dapat menetapkan urutan ke urutan variabel yang cocok. Contohnya:

>>> [a, b] = [2, 3]
>>> a
2
>>> b
3

Kami biasanya menulis ini tanpa tanda kurung, cukup

a, b = [2, 3]
3
Prune 16 September 2019, 21:27

sisi kiri tugas adalah daftar target.

Dari 7.2. Pernyataan tugas:

Penetapan objek ke daftar target, secara opsional diapit dalam tanda kurung atau kurung siku, didefinisikan secara rekursif sebagai berikut.

  • Jika daftar target adalah satu target tanpa koma, opsional dalam tanda kurung, objek ditetapkan ke target itu.

  • Lain: Objek harus dapat diubah dengan jumlah item yang sama dengan ada target dalam daftar target, dan item ditetapkan, dari kiri ke kanan, ke target yang sesuai.

Berikut ini berfungsi karena jumlah item dalam daftar target sama dengan objek di sisi kanan tugas.

In [17]: [a] = ['foo']

In [18]: a
Out[18]: 'foo'

Dalam kode misteri Anda, get_point_by_id harus mengembalikan iterable dengan satu item.

1
wwii 16 September 2019, 21:34