Pertanyaan yang diberi tag «python-internals»

Bagaimana cara kerja Python di bawah tenda? Gunakan untuk pertanyaan yang berkaitan dengan (misalnya) keputusan desain yang dibuat dan struktur data internal dan algoritma yang digunakan.

4
Mengapa array Python lambat?
Saya berharap array.arraylebih cepat dari daftar, karena array tampaknya tidak dikotak. Namun, saya mendapatkan hasil berikut: In [1]: import array In [2]: L = list(range(100000000)) In [3]: A = array.array('l', range(100000000)) In [4]: %timeit sum(L) 1 loop, best of 3: 667 ms per loop In [5]: %timeit sum(A) 1 loop, …

4
Apakah mungkin untuk "meretas" fungsi cetak Python?
Catatan: Pertanyaan ini hanya untuk tujuan informasi. Saya tertarik untuk melihat seberapa dalam ke internal Python adalah mungkin untuk pergi dengan ini. Belum lama ini, sebuah diskusi dimulai di dalam pertanyaan tertentu mengenai apakah string yang diteruskan ke pernyataan cetak dapat dimodifikasi setelah / selama panggilan printtelah dibuat. Misalnya, perhatikan …

6
Mengapa urutan dalam kamus dan ditetapkan sewenang-wenang?
Saya tidak mengerti bagaimana perulangan kamus atau diatur dengan python dilakukan dengan urutan 'sewenang-wenang'. Maksud saya, ini adalah bahasa pemrograman sehingga segala sesuatu dalam bahasa tersebut harus ditentukan 100%, benar? Python harus memiliki beberapa jenis algoritma yang memutuskan bagian mana dari kamus atau set yang dipilih, 1, kedua dan seterusnya. …



3
Mengapa lebih lambat untuk beralih pada string kecil daripada daftar kecil?
Saya bermain-main dengan timeit dan memperhatikan bahwa melakukan pemahaman daftar sederhana atas string kecil membutuhkan waktu lebih lama daripada melakukan operasi yang sama pada daftar string karakter tunggal kecil. Ada penjelasan? Ini hampir 1,35 kali lebih banyak waktu. >>> from timeit import timeit >>> timeit("[x for x in 'abc']") 2.0691067844831528 …

1
Mengapa str.translate jauh lebih cepat di Python 3.5 dibandingkan dengan Python 3.4?
Saya mencoba untuk menghapus karakter yang tidak diinginkan dari string tertentu menggunakan text.translate()Python 3.4. Kode minimalnya adalah: import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapper)) Ini bekerja seperti yang diharapkan. Namun program yang sama ketika dijalankan dengan Python 3.4 dan Python …




7
Bagaimana cara menimpa operasi copy / deepcopy untuk objek Python?
Saya memahami perbedaan antara copyvs. deepcopydalam modul salin. Saya telah menggunakan copy.copydan copy.deepcopysebelumnya berhasil, tetapi ini adalah pertama kalinya saya benar-benar kelebihan beban metode __copy__dan __deepcopy__. Aku sudah Googled sekitar dan melihat melalui built-in modul Python untuk mencari contoh dari __copy__dan __deepcopy__fungsi (misalnya sets.py, decimal.py, dan fractions.py), tapi aku masih …

4
Kapan hash (n) == n di Python?
Saya telah bermain dengan fungsi hash Python . Untuk bilangan bulat kecil, itu hash(n) == nselalu muncul . Namun ini tidak berlaku untuk jumlah besar: >>> hash(2**100) == 2**100 False Saya tidak terkejut, saya mengerti hash membutuhkan rentang nilai yang terbatas. Berapa kisaran itu? Saya mencoba menggunakan pencarian biner untuk …


3
Mengapa max lebih lambat dari sort?
Saya telah menemukan itu maxlebih lambat daripada sortfungsi di Python 2 dan 3. Python 2 $ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'a.sort();a[-1]' 1000 loops, best of 3: 239 usec per loop $ python -m timeit -s 'import random;a=range(10000);random.shuffle(a)' 'max(a)' 1000 loops, best of 3: 342 usec per loop Python …

2
Kapan file .pyc di-refresh?
Saya memahami bahwa file ".pyc" adalah versi yang dikompilasi dari file teks biasa ".py", yang dibuat pada waktu proses untuk membuat program berjalan lebih cepat. Namun saya telah mengamati beberapa hal: Setelah modifikasi file "py", perilaku program berubah. Hal ini menunjukkan bahwa file "py" telah dikompilasi atau setidaknya melalui proses …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.