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

ตอบกระทู้


คำถามนี้ เพื่อป้องกันการส่งแบบอัตโนมัติจากสแปมบอท
รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[flash] ปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: ทำความรู้จักกับภาษา python (24) : Namespace (เนมสเปช) and Scoping (สคอปปิ้ง)

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

โพสต์ โดย anuwat somsakul » 10/08/2018 4:46 pm

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) เปิดดู 256 ครั้ง

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

โพสต์ โดย rangsan » 04/05/2018 9:40 am

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) เปิดดู 346 ครั้ง


ศึกษาจาก : https://www.youtube.com/watch?v=I0wz2UQ ... lzdKrpxsMM

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

โพสต์ โดย Patcharanan.0399 » 21/04/2018 1:49 pm

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

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) เปิดดู 364 ครั้ง


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

var_int = 10
def Addint():
    #global var_int
    var_int = var_int + 1
   
print (var_int)
Addint ()
print (var_int)

ผลการรัน
Namespace1.JPG
ทดลองไม่ใช้งาน ตัวแปร var_int ที่มีลักษณะเป็น Global Namespace ในฟังก์ชัน
Namespace1.JPG (28.15 KiB) เปิดดู 364 ครั้ง

ไม่มีการประกาศตัวแปร Local ไม่มีการส่งค่า argument มาให้ฟังก์ชัน ดังนั้นจึงต้องประการศให้มีการใช้ค่าของตัวแปร Global


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

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

โพสต์ โดย Jom07 » 25/01/2018 2:04 pm

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

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 (สคอปปิ้ง)

โพสต์ โดย Four » 24/01/2018 5:26 pm

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

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

print(int)
Addint()
print(int)


ผลรัน

รูปภาพ

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

โพสต์ โดย Dive Demo » 04/02/2017 1:35 pm

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

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

โพสต์ โดย dawthana » 13/01/2017 10:02 am

สามารถศึกษาข้อมูลเพิ่มเติมได้ที่ http://www.mindphp.com/vdo-tutorial-python/3384-python-tutorial-24-namespaces-and-scopring.html

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

โพสต์ โดย dawthana » 13/01/2017 10:01 am

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) เปิดดู 461 ครั้ง


ฟังก์ชัน dir() (เดอร์) เป็นฟังก์ชัน Built-in (บิวต์-อิน) ในภาษา python (ไพทอน) ที่ใช้สำหรับเรียกดูค่าต่างๆที่กำหนดภายใน Module (โมดูล) เช่น ชื่อ Module, ตัวแปร โดยจะคืนค่าออกมาเป็น String (สตริง)
dir.png
dir.png (20.46 KiB) เปิดดู 461 ครั้ง


ฟังก์ชัน globals() และ locals() เป็นฟังก์ชัน Built-in ในภาษา python เช่นกัน แต่ใช้สำหรับเรียกดูค่า Namespace โดยขึ้นอยู่กับตำแหน่งที่เรียกใช้
globals_locals.png
globals_locals.png (24.5 KiB) เปิดดู 461 ครั้ง


ฟังก์ชัน reload (รีโหลด) ใน python
ฟังก์ชัน reload() เป็นฟังก์ชัน Bulit-in ในภาษา python ที่หากได้ทำการ import (อิมพอร์ต) โมดูลมาใช้งานครั้งหนึ่งแล้วต้องการใช้งานซ้ำอีก
รูปแบบการใช้งาน

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

reload(Module_name)

ตัวอย่างการใช้งาน

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

reload(global_namespace)


ศึกษาข้อมูลมาจาก https://www.youtube.com/watch?v=I0wz2UQIrN4&index=24&list=PLLi1ciqQAf8TVFbJpl7XY23lzdKrpxsMM

ข้างบน