ผลต่างระหว่างรุ่นของ "Python Programming/Modules"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 3: แถว 3:
 
พิจารณาตัวอย่างต่อไปนี้ สมมติว่าโปรแกรมด้านล่างถูกเก็บอยู่ในแฟ้ม mymodule.py
 
พิจารณาตัวอย่างต่อไปนี้ สมมติว่าโปรแกรมด้านล่างถูกเก็บอยู่ในแฟ้ม mymodule.py
  
<pre title="editor external mymodule.py">
+
<pre title="editor external">
 
# แฟ้ม mymodule.py
 
# แฟ้ม mymodule.py
 
   
 
   
แถว 9: แถว 9:
 
     return a+b
 
     return a+b
 
</pre>
 
</pre>
 +
 +
เราสามารถเรียกใช้ฟังก์ชันดังกล่าวในอีกโปรแกรมได้ดังตัวอย่างต่อไปนี้
 +
 +
<pre title="editor external">
 +
import mymodule
 +
 +
print mymodule.my_add(10,20)
 +
</pre>
 +
 +
การสั่ง import mymodule เปรียบเสมือนการเรียกแฟ้ม mymodule.py เข้ามารวมกับโปรแกรมที่เราเขียน ถ้าในแฟ้ม mymodule.py มีคำสั่งให้ทำงานอยู่ คำสั่งเหล่านั้นจะถูกเรียกใช้ด้วยเช่นเดียวกัน
 +
 +
อย่างไรก็ตาม บางครั้งเราเขียนโปรแกรม Python เพื่อใช้ และในขณะเดียวกันก็ต้องการให้ฟังก์ชันที่เขียนสามารถนำไปใช้ในโปรแกรมอื่น ๆ ด้วย เราสามารถตรวจสอบได้โดยใช้ตัวแปร __name__ ดังเช่นตัวอย่างด้านล่างนี้
 +
 +
<pre title="editor external">
 +
# แฟ้ม mymodule.py
 +
 +
def my_add(a,b):
 +
    return a+b
 +
 +
def main():
 +
    # โปรแกรมหลักของแฟ้มนี้
 +
    print "You run mymodule.py"
 +
    print my_add(100,200)
 +
 +
if __name__ == "__main__":    # ตรวจสอบว่าเป็นแฟ้มหลักหรือไม่
 +
    main()
 +
</pre>
 +
 +
เมื่อเราเรียก python mymodule.py เราจะได้ผลลัพธ์เป็น
 +
 +
<pre>
 +
You run mymodule.py
 +
300
 +
</pre>
 +
 +
อย่างไรก็ตามฟังก์ชัน main จะไม่ถูกเรียกในโปรแกรมที่เรียกใช้โมดูล mymodule
 +
 +
{{Python Programming/Navigation|Inheritance|}}

รุ่นแก้ไขเมื่อ 18:53, 19 ตุลาคม 2551

แฟ้มโปรแกรม Python ใด ๆ จะถูกจัดโมดูล ซึ่งถูกเรียกใช้ได้จากแฟ้ม Python อื่น ๆ

พิจารณาตัวอย่างต่อไปนี้ สมมติว่าโปรแกรมด้านล่างถูกเก็บอยู่ในแฟ้ม mymodule.py

# แฟ้ม mymodule.py
 
def my_add(a,b):
    return a+b

เราสามารถเรียกใช้ฟังก์ชันดังกล่าวในอีกโปรแกรมได้ดังตัวอย่างต่อไปนี้

import mymodule
 
print mymodule.my_add(10,20)

การสั่ง import mymodule เปรียบเสมือนการเรียกแฟ้ม mymodule.py เข้ามารวมกับโปรแกรมที่เราเขียน ถ้าในแฟ้ม mymodule.py มีคำสั่งให้ทำงานอยู่ คำสั่งเหล่านั้นจะถูกเรียกใช้ด้วยเช่นเดียวกัน

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

# แฟ้ม mymodule.py
 
def my_add(a,b):
    return a+b
 
def main():
    # โปรแกรมหลักของแฟ้มนี้
    print "You run mymodule.py"
    print my_add(100,200)
 
if __name__ == "__main__":     # ตรวจสอบว่าเป็นแฟ้มหลักหรือไม่
    main()

เมื่อเราเรียก python mymodule.py เราจะได้ผลลัพธ์เป็น

You run mymodule.py
300

อย่างไรก็ตามฟังก์ชัน main จะไม่ถูกเรียกในโปรแกรมที่เรียกใช้โมดูล mymodule

หน้าก่อน: Inheritance สารบัญ หน้าต่อไป: