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

ฉันจะค้นหาจำนวนอาร์กิวเมนต์ของฟังก์ชัน Python ได้อย่างไร


สมมติว่ามีสคริปต์ qux.py ดังนี้

#qux.py
def aMethod1(arg1, arg2):
     pass
def aMethod2(arg1,arg2, arg3, arg4, arg5):
    pass

สมมติว่าคุณไม่มีสิทธิ์เข้าถึงเนื้อหาของสคริปต์นี้ คุณสามารถค้นหาจำนวนอาร์กิวเมนต์ในฟังก์ชันที่กำหนดได้ดังนี้

ในการค้นหารายการชื่อพารามิเตอร์ภายในฟังก์ชัน python เรานำเข้าโมดูลตรวจสอบและนำเข้าสคริปต์ที่กำหนด qux.py

เราได้รับรายการอาร์กิวเมนต์ทั้งหมดของฟังก์ชัน foo() โดยใช้ inspect.getargspec(foo) รายการแรกของรายการนี้เป็นรายการอาร์กิวเมนต์ปกติอีกครั้ง ถ้า x =ตรวจสอบ.getargspec(foo) จำนวนอาร์กิวเมนต์จะพบโดย len(x[0])

#fubar.py
import qux
import inspect
x=inspect.getargspec(qux.aMethod1)
y=inspect.getargspec(qux.aMethod2)
print(llen(y[0]))

เรียกใช้สคริปต์นี้ที่เทอร์มินัล

$ python fubar.py

เราได้ผลลัพธ์ดังต่อไปนี้

5