Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะรับชื่อตัวแปรเป็นสตริงใน Python ได้อย่างไร?


นี่ไม่ใช่สิ่งที่คุณทำใน Python จริงๆ เนื่องจากตัวแปรต่างๆ เป็นการตั้งชื่อการแมปกับอ็อบเจกต์ ออบเจ็กต์เดียวใน Python ที่มีชื่อบัญญัติคือโมดูล ฟังก์ชัน และคลาส และแน่นอนว่าไม่รับประกันว่าชื่อบัญญัตินี้มีความหมายใดๆ ในเนมสเปซหลังจากฟังก์ชันหรือคลาสถูกกำหนดหรือนำเข้าโมดูล ชื่อเหล่านี้สามารถแก้ไขได้หลังจากสร้างวัตถุแล้ว ดังนั้นชื่อเหล่านี้จึงอาจไม่น่าเชื่อถือเป็นพิเศษเสมอไป

ยังมีวิธีรับชื่อของตัวแปรเป็นสตริง คุณจำเป็นต้องรู้สตริงของชื่อตัวแปรเพื่อแยกมันออกมา นอกจากนี้ยังเป็นการค้นหาแบบย้อนกลับสำหรับชื่อตัวแปร ดังนั้นหากคุณมีตัวแปร 2 ตัวที่มีค่าเท่ากัน ตัวแปรอาจส่งคืนตัวแปรใดค่าหนึ่ง iteritems ส่งคืนรายการของตัวแปรทั้งหมดในขอบเขตพร้อมค่าของพวกมัน ตัวอย่างเช่น

>>> my_var = 5
>>> my_var_name = [ k for k,v in locals().iteritems() if v == my_var][0]
>>> my_var_name
'my_var'