ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

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

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

ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

ขอบเขตของตัวแปรฟังก์ชันในภาษา python (ไพทอน) แบ่งออกเป็น 2 ชนิด

- ตัวแปรชนิด Global (โกลบอล) คือตัวแปรที่มีขอบเขตกว้าง สามารถใช้งานได้ทุกส่วนของโปรแกรม
- ตัวแปรชนิด Local (โลคอล) คือตัวแปรที่มีขอบเขตแคบ ใช้งานได้เฉพาะภายในฟังก์ชันนั้นๆ

ตัวอย่างขอบเขตตัวแปร Global และ Local ที่มีชื่อตัวแปรเหมือนกัน
จะเห็นว่าถึงตัวแปรจะชื่อเดียวกันแต่ผลลัพธ์ที่ได้มีค่าไม่เท่ากัน เพราะเรื่องของขอบเขตตัวแปร Global และ Local
gl1.png
gl1.png (43.48 KiB) Viewed 2094 times
ตัวอย่างขอบเขตของตัวแปร Global และ Local ที่มีชื่อตัวแปร Global ซ้ำ
gl2.png
gl2.png (50.56 KiB) Viewed 2094 times
ตัวอย่างขอบเขตของตัวแปร Global และ Local ที่ส่งค่า Global แล้วกำหนดเป็น Local ซ้ำ
จะเห็นว่า ตัวแปร a มีค่าเปลี่ยนแปลงเพราะกำหนดให้เป็น local อีกครั้ง ตัวแปร b มีค่าเท่าเดิมเพราะยังคงเป็นตัวแปร Global อยู่
gl3.png
gl3.png (59.76 KiB) Viewed 2094 times

ตัวอย่างขอบเขตของตัวแปร Global และ Local ที่ส่งค่า Global แล้ว return เป็น Local
gl4.png
gl4.png (53.2 KiB) Viewed 2094 times
ศึกษาข้อมูลมากจาก https://www.youtube.com/watch?v=9KP4C9g ... M&index=21
dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

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

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

ในหัวข้อนี้คือต้องตระหนักถึงตำแหน่งของ ตัวแปร Global และ Local เป็นสำคัญเพราะมีผลในการประมวลผลของระบบ
Four
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 813
ลงทะเบียนเมื่อ: 08/01/2018 9:55 am

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

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

def func():
    a = 1
    b = 2
    print("local A", a)
    print("local B", b)

a = 10
b = 20
print("local A", a)
print("local B", b)
func()
print("local A", a)
print("local B", b)
ผลรัน

รูปภาพ
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 (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

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

total = 0
def test(a,b,c):
    total = a + b + c
    print('แสดงผลรัน local = ', total)
    return total

total = 30
test(10,20,30)
print('แสดงผล global =',total)
ผลรัน

รูปภาพ
รูปภาพ
Patcharanan.0399
PHP Hero Member
PHP Hero Member
โพสต์: 114
ลงทะเบียนเมื่อ: 09/04/2018 10:04 am

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

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

total = 0
def mysum(arg1, arg2, arg3):
    total = arg1 + arg2 + arg3
    print 'Local is : ', total
    return total

mysum(15, 25, 35)
print 'Globle is : ', total
ผลการรัน
ตัวแปรมีค่าไม่เท่ากัน แม้ว่าจะเป็นชื่อเดียวกัน เพราะเรื่องขอบเขตของตัวแปร Global กับ Local
ตัวแปรมีค่าไม่เท่ากัน แม้ว่าจะเป็นชื่อเดียวกัน เพราะเรื่องขอบเขตของตัวแปร Global กับ Local
Global.JPG (10.65 KiB) Viewed 1941 times

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

total = 0
def mysum(arg1, arg2, arg3):
    total = arg1 + arg2 + arg3
    print 'Local is : ', total
    return total

total = 30
mysum(15, 25, 35)
print 'Globle is : ', total
ผลการรัน
เมื่อมีชื่อตัวแปร Global ซ้ำ จะเท่ากับค่าที่กำหนดไว้ล่าสุด
เมื่อมีชื่อตัวแปร Global ซ้ำ จะเท่ากับค่าที่กำหนดไว้ล่าสุด
Global1.JPG (11.08 KiB) Viewed 1941 times

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

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

ขอบเขตของตัวแปรฟังก์ชัน

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

total = 0
def mySum(arg1,arg2,arg3):
    total1 = arg1+arg2+arg3
    total2 = arg1*arg2-arg3
    total = total1+total2
    print 'Value Total in Local  : ',total
    return total

total = 20
mySum(2,3,4)
print '--------------------------'
print 'Value Total in Global : ',total
ผลลัพธ์การรันโค้ด
ขอบเขตของตัวแปรฟังก์ชัน.png
ขอบเขตของตัวแปรฟังก์ชัน.png (17.62 KiB) Viewed 1919 times
จะเห้นได้ว่าตัวแปรของ total ในแบบ Local และ total ในแบบ Global นั้นมีค่าที่ต่างกันถึงแม้ว่าจะมีการ return ค่าออกมาแต่เราไม่ได้เอาค่านั้นมาทำงานต่อแต่อย่างใดค่า total ในแบบ Global จึงมีค่าเท่ากับ 20 เพราะมีการประกาศค่าซ้ำอีกครั้ง

ศึกษาจาก : https://www.youtube.com/watch?v=9KP4C9g3ys8
It’s never too late to start again.
prakon
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 561
ลงทะเบียนเมื่อ: 02/07/2018 10:45 am

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

ตัวแปร global ในฟังก์ชั่นจะทำให้ ตัวแปรนั้น ค่าเดียวกันทั้งในและนอกฟังก์ชั่น
แต่ตัวแปร local ใช้ได้เพียงในฟังก์ชั่น

โค้ดตัวอย่างกรณี ตัวแปร global

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

import time
a=0
def count():
    global a
    a+=1
    print(a)
while 1:
    count()
    time.sleep(1)
จะเห็นได้ว่าตัวแปร
anuwat somsakul
PHP Full Member
PHP Full Member
โพสต์: 44
ลงทะเบียนเมื่อ: 08/08/2018 9:49 am

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

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

ขอบเขตของตัวแปล ใน การสร้างฟังก์ชั่น Scope of Variables

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

total = 0
def mysum(arg1,arg2,arg3):
    total = arg1 + arg2 + arg3 #ตัวแปร local
    print("แสดงค่าของตัวแปรที่เป็นlocal",total)
    return  total

#ชื่อตัวแปรglobalซ้ำ
total = 30
mysum(10,20,30)
print("แสดงค่าของตัวแปรที่เป็นglobal",total)
ผลลัพธ์
Selection_013.png
Selection_013.png (12.58 KiB) Viewed 1208 times
ศึกษาจาก : https://www.youtube.com/watch?v=9KP4C9g ... lzdKrpxsMM
ธวัชชัย แสนหาญ
PHP Super Member
PHP Super Member
โพสต์: 499
ลงทะเบียนเมื่อ: 15/11/2018 10:02 am

Re: ทำความรู้จักกับภาษา python (21) : ขอบเขตของตัวแปรฟังก์ชัน

โพสต์ที่ยังไม่ได้อ่าน โดย ธวัชชัย แสนหาญ »

การใช้ตัวแปรชนิด tuple ใน python
Tuple เป็นตัวแปรชนิดหนึ่งที่สามารถเก็บค่าได้หลายค่าใน1 ตัวแปร
เหมือนกับ list แต่ไม่สามารถ เพิ่ม และ ลบค่าได้
แต่ละค่าหรือสามชิกแต่ละตัวจะต้องอยู่ใน (...)

รูปที่ run ในโปรแกรม
51.png
51.png (29.49 KiB) Viewed 1158 times
โค้ดที่จะนำมาrun

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

Tuple1 =('in','out',1,2)
Tuple2 =(10,20,30,40)

print (Tuple1)        #แสดงคาใน Tuple1 ทั้งหมด
print (Tuple1[1])     #แสดงคาใน Tuple1 ใน index ที่1
print (Tuple2)        #แสดงคาใน Tuple2 ทั้งหมด
print (Tuple2[-1])    #แสดงคาใน Tuple2 -1คือ นับจากข้างหลังลงมา 1 ค่า
ผลลัพธ์ที่ได้
51.png
51.png (29.49 KiB) Viewed 1158 times
แนบไฟล์
52.png
52.png (12.81 KiB) Viewed 1158 times
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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