Saya ingin membuat objek dinamis (di dalam objek lain) dengan Python dan kemudian menambahkan atribut padanya. Show Saya mencoba:
tetapi ini tidak berhasil. Ada ide? edit: Saya mengatur atribut dari loop
Dalam contoh di atas saya akan mendapatkan Saya menggunakan fungsi Bagaimana saya mengatur atribut berdasarkan nilai Anda dapat menggunakan resep kuno Bunch saya, tetapi jika Anda tidak ingin membuat "kelas banyak", yang sangat sederhana sudah ada di Python - semua fungsi dapat memiliki atribut yang berubah-ubah (termasuk fungsi lambda). Jadi, karya-karya berikut:
Apakah hilangnya kejelasan dibandingkan dengan resep Built-in
Saya biasanya hanya melakukan ini:
Ketika saya bisa, saya memberi kelas Beberapa orang melakukan hal yang berbeda, di mana mereka menggunakan sub-kelas Edit : Untuk tambahan pertanyaan Anda, menggunakan
Ada beberapa cara untuk mencapai tujuan ini ... Pada dasarnya Anda membutuhkan objek yang dapat diperpanjang.
Sekarang Anda bisa melakukannya (tidak yakin apakah itu jawaban yang sama dengan evilpie):
Modul
Coba kode di bawah ini:
sebagai docs say :
Anda bisa menggunakan instance kelas dummy. Anda juga dapat menggunakan objek kelas secara langsung; itu menciptakan namespace:
Solusi ini sangat membantu selama pengujian. Membangun jawaban orang lain, saya melakukan ini di Python 2.7.9 (tanpa metode statis saya mendapatkan TypeError (metode tidak terikat ...):
Jika kita dapat menentukan dan menggabungkan semua atribut dan nilai sebelum membuat objek bersarang, maka kita bisa membuat kelas baru yang menggunakan argumen kamus tentang pembuatan.
Kami juga dapat mengizinkan argumen kata kunci. Lihat posting ini .
Datang ke ini pada sore hari tetapi di sini adalah pennyworth saya dengan objek yang kebetulan memegang beberapa jalur yang berguna dalam aplikasi tetapi Anda dapat mengadaptasinya untuk apa pun di mana Anda ingin sedikit informasi yang dapat Anda akses dengan getattr dan notasi titik (yang menurut saya pertanyaan ini sebenarnya tentang):
Ini keren karena sekarang:
Jadi ini menggunakan objek fungsi
seperti jawaban di atas tetapi menggunakan fungsi untuk mendapatkan nilai (Anda masih dapat menggunakan Objek mana yang Anda gunakan? Baru saja mencobanya dengan kelas sampel dan berhasil:
Dan saya mendapat Satu-satunya situasi di mana saya melihat kegagalan ini adalah jika Anda mencoba Pembaruan: Dari komentar ini adalah pengulangan dari: Mengapa Anda tidak dapat menambahkan atribut ke objek dengan python? Apa itu objek dalam Python?Objek pada python adalah kumpulan dari variabel-variabel (dinamakan atribut) dan kumpulan dari fungsi-fungsi (dinamakan perilaku). Atas definisi itu, maka semua hal di dalam python adalah sebuah Objek. Objek dan Kelas dalam python bermakna sama.
Apa yang dimaksud dengan atribut dalam OOP?Istilah Dalam OOP
Atribut adalah data anggota (variabel kelas dan variabel contoh) dan metode, diakses melalui notasi titik. Sebuah variabel yang dibagi oleh semua contoh kelas.
Apa itu namespace pada Python?Sebuah namespace adalah pemetaan dari nama ke objek. Sebagian besar ruang nama namespace saat ini diimplementasikan sebagai kamus dictionary Python, tetapi itu biasanya tidak terlihat dengan cara apa pun (kecuali untuk kinerja), dan itu mungkin berubah di masa depan.
Apa yang dimaksud dengan class pada Python?Apa itu class method pada python? Class method pada python adalah method statis yang disandarkan langsung kepada sebuah kelas, artinya kita bisa memanggil fungsi tersebut tanpa harus membuat objek terlebih dahulu [1].
|