Bagaimana untuk memeriksa apakah tipe dari suatu variabel string?
Apakah ada cara untuk memeriksa apakah tipe dari suatu variabel dalam python adalah string. seperti:
isinstance(x,int);
untuk nilai integer?
699
20
Di Python 2.x, anda akan melakukan
basestring
adalah abstract superclass daristr
danunicode
. Hal ini dapat digunakan untuk menguji apakah sebuah objek adalah instance daristr
atauunicode
.Di Python 3.x, uji yang benar adalah
The
byte
kelas isn't dianggap sebagai tipe string di Python 3.Saya tahu ini adalah topik lama, tapi menjadi orang pertama yang ditampilkan di google dan mengingat bahwa saya don't menemukan jawaban yang memuaskan, saya'akan meninggalkan ini di sini untuk referensi di masa mendatang:
enam adalah Python 2 dan 3 perpustakaan kompatibilitas yang sudah mencakup masalah ini. Anda kemudian dapat melakukan sesuatu seperti ini:
Memeriksa kode, ini adalah apa yang anda dapatkan:
Di Python 3.x atau Python 2.7.6
yang dapat anda lakukan:
atau:
harap ini membantu!
Jenis modul juga ada jika anda memeriksa lebih dari int dan string. http://docs.python.org/library/types.html
sejak
basestring
isn't didefinisikan dalam Python3, trik kecil ini mungkin bisa membantu untuk membuat kode yang kompatibel:setelah itu anda dapat menjalankan tes berikut di kedua Python2 dan Python3
Python 2 / 3 termasuk unicode
http://python-future.org/overview.html
Edit berdasarkan jawaban yang lebih baik di bawah ini. Turun sekitar 3 jawaban dan mencari tahu tentang kesejukan basestring.
Tua menjawab: Watch out untuk unicode string, yang bisa anda dapatkan dari beberapa tempat, termasuk semua panggilan COM di Windows.
Banyak saran yang baik yang diberikan oleh orang lain di sini, tapi aku don't melihat sebuah cross-platform ringkasan. Berikut ini harus baik drop in untuk setiap program Python:
Dalam fungsi ini, kita menggunakan
isinstance(objek, classinfo)
untuk melihat apakah kita input adalahstr
di Python 3 ataubasestring
di Python 2.Juga saya ingin melihat bahwa jika anda ingin memeriksa apakah tipe dari suatu variabel merupakan jenis tertentu, anda dapat membandingkan jenis variabel untuk jenis objek yang dikenal.
Untuk string anda dapat menggunakan ini
Jadi,
Anda memiliki banyak pilihan untuk memeriksa apakah variabel string atau tidak:
Perintah ini adalah untuk tujuan.
Cara alternatif untuk Python 2, tanpa menggunakan basestring:
Tapi masih menang't bekerja di Python 3 sejak
unicode
isn't didefinisikan (dalam Python 3).mengembalikan True
mengembalikan True
Berikut ini adalah jawaban saya untuk mendukung Python 2 dan Python 3 bersama dengan persyaratan:
enam
atau mirip compat modul karena mereka cenderung menyembunyikan diri apa mencoba untuk dicapai.Jika anda tidak ingin tergantung pada eksternal libs, ini bekerja baik untuk Python 2.7+ dan Python 3 (http://ideone.com/uB4Kdc):
Anda hanya dapat menggunakan isinstance fungsi untuk memastikan bahwa input data dari format string atau unicode. Di bawah ini contoh-contoh yang akan membantu anda untuk memahami dengan mudah.
Ini adalah bagaimana saya melakukannya:
I've melihat: