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

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

โพสต์แล้ว: 11/01/2017 6:13 pm
โดย dawthana
ขอบเขตของตัวแปรฟังก์ชันในภาษา python (ไพทอน) แบ่งออกเป็น 2 ชนิด

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

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

ตัวอย่างขอบเขตของตัวแปร Global และ Local ที่ส่งค่า Global แล้ว return เป็น Local
gl4.png
gl4.png (53.2 KiB) Viewed 2122 times
ศึกษาข้อมูลมากจาก https://www.youtube.com/watch?v=9KP4C9g ... M&index=21

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

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

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

โพสต์แล้ว: 03/02/2017 5:11 pm
โดย Dive Demo
ในหัวข้อนี้คือต้องตระหนักถึงตำแหน่งของ ตัวแปร Global และ Local เป็นสำคัญเพราะมีผลในการประมวลผลของระบบ

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

โพสต์แล้ว: 23/01/2018 4:32 pm
โดย 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)
ผลรัน

รูปภาพ

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

โพสต์แล้ว: 25/01/2018 1:13 am
โดย 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)
ผลรัน

รูปภาพ

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

โพสต์แล้ว: 21/04/2018 11:30 am
โดย 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 1969 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 1969 times

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

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

โพสต์แล้ว: 03/05/2018 1:55 pm
โดย 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 1947 times
จะเห้นได้ว่าตัวแปรของ total ในแบบ Local และ total ในแบบ Global นั้นมีค่าที่ต่างกันถึงแม้ว่าจะมีการ return ค่าออกมาแต่เราไม่ได้เอาค่านั้นมาทำงานต่อแต่อย่างใดค่า total ในแบบ Global จึงมีค่าเท่ากับ 20 เพราะมีการประกาศค่าซ้ำอีกครั้ง

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

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

โพสต์แล้ว: 06/07/2018 3:52 pm
โดย prakon
ตัวแปร global ในฟังก์ชั่นจะทำให้ ตัวแปรนั้น ค่าเดียวกันทั้งในและนอกฟังก์ชั่น
แต่ตัวแปร local ใช้ได้เพียงในฟังก์ชั่น

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

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

import time
a=0
def count():
    global a
    a+=1
    print(a)
while 1:
    count()
    time.sleep(1)
จะเห็นได้ว่าตัวแปร

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

โพสต์แล้ว: 10/08/2018 3:57 pm
โดย 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 1245 times
ศึกษาจาก : https://www.youtube.com/watch?v=9KP4C9g ... lzdKrpxsMM

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

โพสต์แล้ว: 16/11/2018 6:02 pm
โดย ธวัชชัย แสนหาญ
การใช้ตัวแปรชนิด tuple ใน python
Tuple เป็นตัวแปรชนิดหนึ่งที่สามารถเก็บค่าได้หลายค่าใน1 ตัวแปร
เหมือนกับ list แต่ไม่สามารถ เพิ่ม และ ลบค่าได้
แต่ละค่าหรือสามชิกแต่ละตัวจะต้องอยู่ใน (...)

รูปที่ run ในโปรแกรม
51.png
51.png (29.49 KiB) Viewed 1195 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 1195 times