ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)


แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderators: mindphp, ผู้ดูแลกระดาน

dawthana
PHP Super Hero Member
PHP Super Hero Member
Posts: 604
Joined: 07/12/2016 10:55 am

ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by dawthana » 13/01/2017 10:01 am

Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)
Namespace (เนมสเปช) คือ Dictionary (ดิกชันนารี) ที่ใช้เก็บ Key (คีย์) และ Value (เวลู่) ของตัวแปร โดยมีอยู่ 2 ลักษณะ คือ Global Namespace (โกลบอล เนมสปเช) และ Local Namespace (โลคอล เนมสเปช) ซึ่งในแต่ละฟังก์ชันจะเป็นเจ้าของแต่ละ Local Namespace Methods (โลคอล เนมสเปช เมธอด) ของคลาส

ตัวอย่างลักษณะของ Global Namespace
ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง) Global Namespace.png
Global Namespace.png (35.97 KiB) Viewed 896 times
ฟังก์ชัน dir() (เดอร์) เป็นฟังก์ชัน Built-in (บิวต์-อิน) ในภาษา python (ไพทอน) ที่ใช้สำหรับเรียกดูค่าต่างๆที่กำหนดภายใน Module (โมดูล) เช่น ชื่อ Module, ตัวแปร โดยจะคืนค่าออกมาเป็น String (สตริง)
ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง) dir.png
dir.png (20.46 KiB) Viewed 896 times
ฟังก์ชัน globals() และ locals() เป็นฟังก์ชัน Built-in ในภาษา python เช่นกัน แต่ใช้สำหรับเรียกดูค่า Namespace โดยขึ้นอยู่กับตำแหน่งที่เรียกใช้
ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง) globals_locals.png
globals_locals.png (24.5 KiB) Viewed 896 times
ฟังก์ชัน reload (รีโหลด) ใน python
ฟังก์ชัน reload() เป็นฟังก์ชัน Bulit-in ในภาษา python ที่หากได้ทำการ import (อิมพอร์ต) โมดูลมาใช้งานครั้งหนึ่งแล้วต้องการใช้งานซ้ำอีก
รูปแบบการใช้งาน

Code: Select all

reload(Module_name)
ตัวอย่างการใช้งาน

Code: Select all

reload(global_namespace)
ศึกษาข้อมูลมาจาก https://www.youtube.com/watch?v=I0wz2UQ ... lzdKrpxsMM

dawthana
PHP Super Hero Member
PHP Super Hero Member
Posts: 604
Joined: 07/12/2016 10:55 am

Re: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by dawthana » 13/01/2017 10:02 am

สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.mindphp.com/vdo-tutorial-pyt ... pring.html

Dive Demo
PHP Sr. Member
PHP Sr. Member
Posts: 84
Joined: 01/02/2017 11:10 am

Re: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by Dive Demo » 04/02/2017 1:35 pm

ผมสงสัยว่าตัวฟังก์ชั่น dir() กับ reload() จริง ๆ การใช้งานมันมีประโยชน์อย่างไรเหรอครับ?

Four
PHP Super Hero Member
PHP Super Hero Member
Posts: 813
Joined: 08/01/2018 9:55 am

Re: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by Four » 24/01/2018 5:26 pm

Code: Select all

int = 10
def Addint():
    global int
    int = int * 2

print(int)
Addint()
print(int)
ผลรัน

Image
I am slow walker, but I never walk back. (Abraham Lincoln)

User avatar
Jom07
PHP Super Hero Member
PHP Super Hero Member
Posts: 514
Joined: 08/01/2018 9:56 am

Re: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by Jom07 » 25/01/2018 2:04 pm

Code: Select all

var_int = 15
def Addint():
    global var_int
    var_int = var_int + 5

print(var_int)
Addint()
print(var_int)
ผลรัน

Image

ศึกษาข้อมูลจาก : https://www.youtube.com/watch?v=I0wz2UQ ... lzdKrpxsMM
Image

Patcharanan.0399
PHP Hero Member
PHP Hero Member
Posts: 114
Joined: 09/04/2018 10:04 am

Re: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by Patcharanan.0399 » 21/04/2018 1:49 pm

Code: Select all

var_int = 10 
def Addint():
    global var_int
    var_int = var_int + 1
    
print (var_int)
Addint ()
print (var_int)
ผลการรัน
ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง) Namespace.JPG
Namespace.JPG (10.1 KiB) Viewed 799 times

Code: Select all

var_int = 10 
def Addint():
    #global var_int
    var_int = var_int + 1
    
print (var_int)
Addint ()
print (var_int)
ผลการรัน
ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง) Namespace1.JPG
ทดลองไม่ใช้งาน ตัวแปร var_int ที่มีลักษณะเป็น Global Namespace ในฟังก์ชัน
Namespace1.JPG (28.15 KiB) Viewed 799 times
ไม่มีการประกาศตัวแปร Local ไม่มีการส่งค่า argument มาให้ฟังก์ชัน ดังนั้นจึงต้องประการศให้มีการใช้ค่าของตัวแปร Global


ศึกษาจาก https://youtu.be/I0wz2UQIrN4

rangsan
PHP Hero Member
PHP Hero Member
Posts: 199
Joined: 30/04/2018 9:44 am

Re: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by rangsan » 04/05/2018 9:40 am

Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Code: Select all

var_int = 5
def Addint():
    global var_int
    global total
    var_int2 = 20
    total = var_int * var_int2
    print "---Calculation Please Wait !!---"
    
print "Variable int is : ",var_int
Addint()
print"Total sum is    : ",total

ผลการรันโค้ด
ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง) Namespace_Scoping.png
Namespace_Scoping.png (15.82 KiB) Viewed 781 times
ศึกษาจาก : https://www.youtube.com/watch?v=I0wz2UQ ... lzdKrpxsMM
It’s never too late to start again.

anuwat somsakul
PHP Full Member
PHP Full Member
Posts: 44
Joined: 08/08/2018 9:49 am

Re: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

Post by anuwat somsakul » 10/08/2018 4:46 pm

Namespaces and Scoping ใน Python Local Global

Code: Select all

var_int = 10
def Addint():
    global var_int
    var_int = var_int + 1
print(var_int)
Addint()
print(var_int)
ผลลัพธ์
ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง) Selection_017.png
Selection_017.png (8.82 KiB) Viewed 691 times

Post Reply

Return to “Python Knowledge”

Users browsing this forum: No registered users and 33 guests