ep6 python : understand python ไม่ได้แปลว่าคุณเข้าใจไพธอนไหม มันแปลว่า...
understand python ไม่ได้แปลว่าคุณเข้าใจไพธอนไหม มันแปลว่า...
...
...
...
เราใช้โปรแกรม understand กับ python API อย่างไร
ก่อนอื่นเลย มาแนะนำโปรแกรม understand ดีกว่า ว่าคือโปรแกรมอะไร
understand คือโปรแกรมจัดการ database ของ source code ของเรา มันจะ analyse code ของเราออกมาเป็น database ตัวนึง ซึ่งเราจะต้องใช้ python API จัดการมันต่อไป ซึ่งสามารถศึกษาข้อมูลเพิ่มเติมได้จากในเว็บเขานะคะ โดยตัวโปรแกรมนั้น เป็น trial download ซึ่ง free 15 วันนะคะ
เมื่อเรา download โปรแกรม understand มาใช้เลย ต้องตรวจสอบเครื่องเราด้วยว่า เราใช้ python version อะไร ซึ่ง understand รองรับ python 3.x ขึ้นไปคะ
มาเริ่ม install ส่วนที่เราจะต้องใช้งานร่วมกับ understand นะคะ
- เปิดหา directory "SciTools/bin/<SYSTEM>/python" ตัวอย่าง C:/Program Files/SciTool/bin/pc-win32/python และจะเจอ understand.pyd ในนั้น
- จากนั้น เข้าไปที่ Control Panel -> System and Security -> System หรือเข้า computer แล้วคลิกขวาที่ properties เลือก Advanced system setting กดที่ Environment Variables... เพิ่ม Understand ใน path แล้วใส่ directory ของ python (C:/Python33) และของ understand ลงไป (C:/Program Files/SciTool/bin/)
- ตั้ง Environment Variables ชื่อ PYTHONPATH มีค่าเป็น C:/Program Files/SciTool/bin/pc-win32/python หรือ เข้า cmd พิมพ์ set PYTHONPATH=%PYTHONPATH%;C:\Program Files\SciTools\bin\pc-win32\python
- จากนั้นเข้าไปที่ program understand สร้าง project ใหม่ เลือก folder source file แล้วกดให้ program analyse ข้อมูล source code ออกมาเป็น database (.udb) จากนั้นปิดโปรแกรม understand (หมดประโยชน์แล้วแก หึหึ~~~~)
- เปิด python shell ขึ้นมา ลอง import understand ดู แต่ถ้าไม่ได้หล่ะ จะทำอย่างไร
--> ใช้โปรแกรม Dependency Wallker มาตรวจสอบ open ไฟล์ C:/Program Files/SciTool/bin/pc-win32/python/understand.pyd จากนั้นรอแปปนึง พบว่าจะมีไฟล์ .dll บางอันที่ไม่มีให้ถูกเรียก (อันที่เป็นวงกลมเครื่องหมายคำถามสีเหลือง) จึงทำให้ใช้งานไม่ได้ ต้องหาโหลดมาใส่ใน system32
เมื่อได้มาครบแล้ว กด F5 ที่โปรแกรมเพื่อให้ประมวณผลใหม่ จะพบว่าตัวที่ขึ้นวงกลมเครื่องหมายคำถามสีเหลืองหายไป สามารถใช้งาน import understand ได้แล้ววววว
เมื่อใช้ได้แล้ว มาดูการใช้งานคร่าวๆกันก่อนดีกว่าคะ
import understand
db = understand.open("test.udb")
#เปิด database มาอ่าน
for ent in sorted(db.ents(), key = lambda ent: ent.name()):
#เปิด database มาอ่าน
for ent in sorted(db.ents(), key = lambda ent: ent.name()):
print(ent.name(), " [",ent.kindname(), "]", sep = "", end = "\n")
#จะแสดงข้อมูลใน database ที่ถูก sort ไว้แล้ว
หรือ บอกว่าตัวแปรนี้ ถูกใช้ที่ไหน เรียกที่ไหน มีการกำหนดค่าที่ใด ประเภทตัวแปรเป็นอะไร โดยจะบอกเป็นชื่อไฟล์ บรรทัด และคอลัมน์
import understand
db = understand.open("test.udb")
for ent in db.ents("Global Object ~Static"):
print (ent,":",sep="")
for ref in ent.refs():
print (ref.kindname(),ref.ent(),ref.file(),"(",ref.line(),",",ref.column(),")")
print ("\n",end="")
**อ่านเพิ่มเติมได้ที่ manual ของเขานะคะ
ในวันนี้มีมานำเสนอแต่เพียงเท่านี้ คราวหน้าจะเป็นอะไรติดตามชมนะคะ สวัสดีคะ :)
#จะแสดงข้อมูลใน database ที่ถูก sort ไว้แล้ว
หรือ บอกว่าตัวแปรนี้ ถูกใช้ที่ไหน เรียกที่ไหน มีการกำหนดค่าที่ใด ประเภทตัวแปรเป็นอะไร โดยจะบอกเป็นชื่อไฟล์ บรรทัด และคอลัมน์
import understand
db = understand.open("test.udb")
for ent in db.ents("Global Object ~Static"):
print (ent,":",sep="")
for ref in ent.refs():
print (ref.kindname(),ref.ent(),ref.file(),"(",ref.line(),",",ref.column(),")")
print ("\n",end="")
ในวันนี้มีมานำเสนอแต่เพียงเท่านี้ คราวหน้าจะเป็นอะไรติดตามชมนะคะ สวัสดีคะ :)
ป้ายกำกับ: programming, python