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

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

รุ่นแก้ไขปัจจุบันเมื่อ 04:22, 4 ตุลาคม 2558

แฟ้มโปรแกรม 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 สารบัญ หน้าต่อไป: