หน้า 1 จากทั้งหมด 1

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

โพสต์แล้ว: 13/01/2017 10:01 am
โดย 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 1676 times
ฟังก์ชัน dir() (เดอร์) เป็นฟังก์ชัน Built-in (บิวต์-อิน) ในภาษา python (ไพทอน) ที่ใช้สำหรับเรียกดูค่าต่างๆที่กำหนดภายใน Module (โมดูล) เช่น ชื่อ Module, ตัวแปร โดยจะคืนค่าออกมาเป็น String (สตริง)
dir.png
dir.png (20.46 KiB) Viewed 1676 times
ฟังก์ชัน globals() และ locals() เป็นฟังก์ชัน Built-in ในภาษา python เช่นกัน แต่ใช้สำหรับเรียกดูค่า Namespace โดยขึ้นอยู่กับตำแหน่งที่เรียกใช้
globals_locals.png
globals_locals.png (24.5 KiB) Viewed 1676 times
ฟังก์ชัน reload (รีโหลด) ใน python
ฟังก์ชัน reload() เป็นฟังก์ชัน Bulit-in ในภาษา python ที่หากได้ทำการ import (อิมพอร์ต) โมดูลมาใช้งานครั้งหนึ่งแล้วต้องการใช้งานซ้ำอีก
รูปแบบการใช้งาน

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

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

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

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

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

โพสต์แล้ว: 13/01/2017 10:02 am
โดย dawthana
สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ https://www.mindphp.com/vdo-tutorial-pyt ... pring.html

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

โพสต์แล้ว: 04/02/2017 1:35 pm
โดย Dive Demo
ผมสงสัยว่าตัวฟังก์ชั่น dir() กับ reload() จริง ๆ การใช้งานมันมีประโยชน์อย่างไรเหรอครับ?

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

โพสต์แล้ว: 24/01/2018 5:26 pm
โดย Four

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

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

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

รูปภาพ

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

โพสต์แล้ว: 25/01/2018 2:04 pm
โดย 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

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

โพสต์แล้ว: 21/04/2018 1:49 pm
โดย 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 1579 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 1579 times
ไม่มีการประกาศตัวแปร Local ไม่มีการส่งค่า argument มาให้ฟังก์ชัน ดังนั้นจึงต้องประการศให้มีการใช้ค่าของตัวแปร Global


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

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

โพสต์แล้ว: 04/05/2018 9:40 am
โดย 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 1561 times
ศึกษาจาก : https://www.youtube.com/watch?v=I0wz2UQ ... lzdKrpxsMM

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

โพสต์แล้ว: 10/08/2018 4:46 pm
โดย 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 1471 times

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

โพสต์แล้ว: 11/06/2019 2:43 pm
โดย chatee supasand
ทดลองทำตามดูแล้วเข้าใจมากๆเลยครับ

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

โพสต์แล้ว: 21/06/2019 11:46 am
โดย 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 633 times
dir()

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

from global_name import *
content = dir(addint)
print(content)
ผลลัพธ์
Selection_007.png
Selection_007.png (9.08 KiB) Viewed 633 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