>>> Let's run Python on Mobile

วันพุธ, สิงหาคม 10, 2548

def กำหนดคำสั่ง และการ return

def ใช้กำหนดคำสั่ง คุณได้เห็นวิธีใช้มาบ้างแล้ว เช่น การปรากฎ note สั้นๆ บนหน้าจอ Smartphone ดังตัวอย่าง

def hello_01():
     appuifw.note(u'hello with no return','info')

เราใช้ def ตามด้วยชื่อคำสั่งที่เราต้องการกำหนด ต่อด้วยเครื่องหมาย : แล้วมีการย่อหน้า (อาจจะด้วยสัก 4 space)
แต่ละบรรทัดที่ตามมา จะบอกว่าคำสั่งนี้ทำอะไร
แต่ละบรรทัดที่อยู่ในขอบเขตของ def ก็ต้องย่อหน้าให้ตรงกันด้วย

ภาษาPython ไม่มีเครื่องหมายจบประโยค ไม่มีเครื่องหมายกำหนดขอบเขต แบบภาษาอื่น
Pythonจึงให้ความสำคัญ กับการขึ้นบรรทัดใหม่ และการย่อหน้า ค่อนข้างมาก
ลองมาดู def แบบหลายบรรทัดกันบ้าง

def hello_re():
     appuifw.note(u'hello with return','info')
     return 2005

จากตัวอย่าง มีการขึ้นบรรทัดใหม่ ย่อหน้าให้ตรงกัน บอกว่า 2 บรรทัดที่ตามมา อยู่ในขอบเขตของ def
คุณจะเห็นว่า hello_re() นอกจากจะแสดง note สั้นๆ แล้ว ยังมีการ return 2005
สามารถนำไปกำหนดค่าให้ตัวแปรต่างๆเช่น
a=hello_re()
หรือจะเปลี่ยน ให้เป็น String ก่อน ก็ใช้คำสั่ง str() เช่น
my_id=str(hello_re())

ที่จริงทุกคำสั่งในPythonนั้น จะมีการ returnค่า ด้วยเสมอ เช่นตัวอย่างแรก hello_01() ถ้าไม่มีการกำหนดเรื่อง return ไว้ ก็จะ return None
ดังตัวอย่าง
import appuifw ,e32
def hello_01():
     appuifw.note(u'hello with no return','info')
def hello_re():
     appuifw.note(u'hello with return','info')
     return 2005
def stop_now():
     a.signal()

appuifw.app.title=u'test08'
t=appuifw.Text()
appuifw.app.body=t
x=str(hello_01())
t.add(u'hello_01 return this...'+x+'\n')
y=str(hello_re())
t.add(u'hello_re return this...'+y+'\n')
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()


return,or not return?



Codeตัวอย่าง
test08.zip

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit
>>>And More...