Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คลาสพื้นฐานของล่ามใน Python


โหมดโต้ตอบของ Python ทำงานบนหลักการของ REPL (อ่าน - ประเมิน - พิมพ์ - วนซ้ำ) โมดูลโค้ดในไลบรารีมาตรฐานของ Python มีฟังก์ชันอำนวยความสะดวกของคลาสและฟังก์ชันการตั้งค่าสภาพแวดล้อม REPL จากภายในสคริปต์ Python

สองคลาสต่อไปนี้ถูกกำหนดในโมดูลโค้ด:

InteractiveInterpreter: คลาสนี้เกี่ยวข้องกับสถานะการแยกวิเคราะห์และล่าม (เนมสเปซของผู้ใช้)

อินเทอร์แอกทีฟคอนโซล: เลียนแบบพฤติกรรมของล่าม Python แบบโต้ตอบอย่างใกล้ชิด

ฟังก์ชันอำนวยความสะดวกสองอย่างในโมดูล ได้แก่:

โต้ตอบ(): ฟังก์ชันอำนวยความสะดวกในการรันลูป read-eval-print

compile_command(): ฟังก์ชันนี้มีประโยชน์สำหรับโปรแกรมที่ต้องการเลียนแบบลูปหลักของล่ามของ Python (REPL)

วิธีการล่ามเชิงโต้ตอบ

รันซอร์ส(): รวบรวมและเรียกใช้ซอร์สบางอย่างในล่าม

runcode(): รันโค้ดวัตถุ

วิธีการคอนโซลแบบโต้ตอบ:

เนื่องจากคลาส InteractiveConsole เป็นคลาสย่อยของ InteractiveInterpreter วิธีการข้างต้นจึงพร้อมใช้งานโดยอัตโนมัติ นอกจากนี้ยังมีการกำหนดวิธีการดังต่อไปนี้

โต้ตอบ(): จำลองคอนโซล Python แบบโต้ตอบอย่างใกล้ชิด

ดัน(): ดันบรรทัดของข้อความต้นฉบับไปที่ล่าม

รีเซ็ตบัฟเฟอร์(): ลบข้อความต้นฉบับที่ไม่ได้รับการจัดการออกจากบัฟเฟอร์อินพุต

raw_input(prompt="")

เขียนข้อความแจ้งและอ่านบรรทัดโดยค่าเริ่มต้นจาก sys.stdin

ตัวอย่าง

import code
x = 10
y = 20
def add(x,y):
   return x+y
print (add(x,y))
code.interact(local=locals())
print (x,y)
print (add(x,y))

ในโค้ดข้างต้น สอง vaiables ถูกกำหนดและส่งผ่านไปยังฟังก์ชัน เราเรียกใช้คอนโซลแบบโต้ตอบ อาร์กิวเมนต์ local=locals() อนุญาตให้ใช้เนมสเปซท้องถิ่นเป็นค่าเริ่มต้นภายในลูปล่าม

หากคุณกำหนดค่าต่างๆ ให้กับตัวแปรและออกจากคอนโซลโดยการกด ctrl+D ค่าเหล่านั้นจะถูกส่งต่อไปยังฟังก์ชัน

ผลลัพธ์

addition= 30
Python 3.6.6 |Anaconda custom (64-bit)| (default, Oct 9 2018, 12:34:16)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> x=100
>>> y=200
>>>

now exiting InteractiveConsole...
100 200
addition = 300