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

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

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

dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย dawthana »

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

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

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

reload(global_namespace)
ศึกษาข้อมูลมาจาก https://www.youtube.com/watch?v=I0wz2UQ ... lzdKrpxsMM
dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย dawthana »

สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.mindphp.com/vdo-tutorial-pyt ... pring.html
Dive Demo
PHP Sr. Member
PHP Sr. Member
โพสต์: 84
ลงทะเบียนเมื่อ: 01/02/2017 11:10 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย Dive Demo »

ผมสงสัยว่าตัวฟังก์ชั่น dir() กับ reload() จริง ๆ การใช้งานมันมีประโยชน์อย่างไรเหรอครับ?
Four
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 813
ลงทะเบียนเมื่อ: 08/01/2018 9:55 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย Four »

โค้ด: เลือกทั้งหมด

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

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

รูปภาพ
I am slow walker, but I never walk back. (Abraham Lincoln)
ภาพประจำตัวสมาชิก
Jom07
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 514
ลงทะเบียนเมื่อ: 08/01/2018 9:56 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย Jom07 »

โค้ด: เลือกทั้งหมด

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

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

รูปภาพ

ศึกษาข้อมูลจาก : https://www.youtube.com/watch?v=I0wz2UQ ... lzdKrpxsMM
รูปภาพ
Patcharanan.0399
PHP Hero Member
PHP Hero Member
โพสต์: 114
ลงทะเบียนเมื่อ: 09/04/2018 10:04 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย Patcharanan.0399 »

โค้ด: เลือกทั้งหมด

var_int = 10 
def Addint():
    global var_int
    var_int = var_int + 1
    
print (var_int)
Addint ()
print (var_int)
ผลการรัน
Namespace.JPG
Namespace.JPG (10.1 KiB) Viewed 1540 times

โค้ด: เลือกทั้งหมด

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


ศึกษาจาก https://youtu.be/I0wz2UQIrN4
rangsan
PHP Hero Member
PHP Hero Member
โพสต์: 199
ลงทะเบียนเมื่อ: 30/04/2018 9:44 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย rangsan »

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

โค้ด: เลือกทั้งหมด

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

ผลการรันโค้ด
Namespace_Scoping.png
Namespace_Scoping.png (15.82 KiB) Viewed 1522 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
โพสต์: 44
ลงทะเบียนเมื่อ: 08/08/2018 9:49 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย anuwat somsakul »

Namespaces and Scoping ใน Python Local Global

โค้ด: เลือกทั้งหมด

var_int = 10
def Addint():
    global var_int
    var_int = var_int + 1
print(var_int)
Addint()
print(var_int)
ผลลัพธ์
Selection_017.png
Selection_017.png (8.82 KiB) Viewed 1432 times
ภาพประจำตัวสมาชิก
chatee supasand
PHP VIP Members
PHP VIP Members
โพสต์: 1666
ลงทะเบียนเมื่อ: 04/06/2019 10:06 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย chatee supasand »

ทดลองทำตามดูแล้วเข้าใจมากๆเลยครับ
รูปภาพ
ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

global namespce

โค้ด: เลือกทั้งหมด

var_int = 10
def addint():
    global  var_int
    var_int= var_int+1

print(var_int)
addint()
print(var_int)

ผลลัพธ์
Selection_006.png
Selection_006.png (6.07 KiB) Viewed 593 times
dir()

โค้ด: เลือกทั้งหมด

from global_name import *
content = dir(addint)
print(content)
ผลลัพธ์
Selection_007.png
Selection_007.png (9.08 KiB) Viewed 593 times
global() locals()

โค้ด: เลือกทั้งหมด

var_int = 10
def addint():
    global  var_int
    var_inside ='local variable'
    g = globals()
    print(g)
    l = locals()
    print(l)

    var_int= var_int+1


addint()

ผลลัพธ์
Selection_008.png
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 46