หน้าแรก
หน้าแรก
โดยพื้นฐานแล้วนี่เป็นแนวคิดของออบเจกต์ซิงเกิลตัน ดังนั้น หากคุณสร้างอินสแตนซ์ของ obect และต้องการเข้าถึงข้ามโมดูลที่แตกต่างกัน คุณสามารถใช้ 2 วิธี ขั้นแรกให้คุณกำหนดตัวแปรนั้นให้กับโมดูลที่คุณนำเข้าภายใต้ชื่อตัวแปร ตัวอย่างเช่น คุณมีอ็อบเจ็กต์ myobj สร้างอินสแตนซ์และต้องการใช้กับโมดูล B จากนั้นคุณสา
แต่ละแพ็กเกจ โมดูล คลาส ฟังก์ชัน และฟังก์ชันเมธอดมี เนมสเปซ ซึ่งแก้ไขชื่อตัวแปรได้ เมื่อมีการประเมินฟังก์ชัน โมดูล หรือแพ็คเกจ (กล่าวคือ เริ่มดำเนินการ) เนมสเปซจะถูกสร้างขึ้น ดังนั้น หากคุณต้องการสร้างเนมสเปซ คุณเพียงแค่เรียกใช้ฟังก์ชัน สร้างอินสแตนซ์อ็อบเจ็กต์ นำเข้าโมดูล หรือนำเข้าแพ็กเกจ ตัวอย่าง
ใน Python แพ็คเกจเนมสเปซช่วยให้คุณกระจายโค้ด Python ในหลายโครงการ สิ่งนี้มีประโยชน์เมื่อคุณต้องการเผยแพร่ไลบรารีที่เกี่ยวข้องเป็นการดาวน์โหลดแยกต่างหาก ตัวอย่างเช่น ด้วยไดเร็กทอรี Package-1 และ Package-2 ใน PYTHONPATH Package-1/namespace/__init__.py Package-1/namespace/module1/__init__.py Package-2/
เนมสเปซในตัวนั้นเป็นโกลบอลสำหรับล่ามทั้งหมดและสคริปต์ทั้งหมดที่ทำงานภายในอินสแตนซ์ของล่ามในขณะที่เนมสเปซส่วนกลางนั้นเป็นโกลบอลในโมดูล กล่าวคือ ในไฟล์เดียว
คำสั่ง จากการนำเข้าโมดูล * ใช้เพื่อนำเข้าโมดูลย่อยทั้งหมดจากแพ็คเกจ/โมดูล Python ตัวอย่างเช่น หากคุณต้องการนำเข้าโมดูลทั้งหมดจากโมดูลของคุณ (เช่น nyModule) และไม่ต้องการคำนำหน้า myModule ขณะโทรทำได้ดังนี้: >>> from myModule import * โปรดทราบว่าสำหรับรหัสชุดใหญ่ๆ ที่สมเหตุสมผล หากคุณนำเข้า
เป็นความคิดที่ดีที่จะนำเข้าทุกอย่างจากแพ็คเกจ Python เนื่องจากแพ็คเกจไม่ใช่ super-module แต่เป็นคอลเลกชันของโมดูลที่จัดกลุ่มเข้าด้วยกัน ดังนั้นคุณควรนำเข้าสิ่งที่คุณต้องการในไฟล์นั้น นอกจากนี้ การนำเข้าทุกอย่างจากแพ็กเกจไปยังเนมสเปซส่วนกลางของคุณจะทำให้ชื่อมีจำนวนมากขึ้น และมีความเป็นไปได้สูงที่จะขั
Globals ใน Python เป็นโกลบอลของโมดูล ไม่ใช่ในทุกโมดูล (ต่างจาก C โดยที่โกลบอลจะเหมือนกันในไฟล์การใช้งานทั้งหมด เว้นแต่คุณจะกำหนดให้เป็นแบบสแตติกอย่างชัดแจ้ง) หากคุณต้องการตัวแปรส่วนกลางอย่างแท้จริงจากโมดูลที่นำเข้า คุณสามารถตั้งค่าตัวแปรเหล่านั้นที่แอตทริบิวต์ของโมดูลที่คุณกำลังนำเข้าได้ import modu
เนมสเปซเป็นวิธีการปรับใช้ขอบเขต ใน Python แต่ละแพ็คเกจ โมดูล คลาส ฟังก์ชัน และฟังก์ชันเมธอดจะเป็นเจ้าของ เนมสเปซ ซึ่งแก้ไขชื่อตัวแปรได้ เมื่อมีการประเมินฟังก์ชัน โมดูล หรือแพ็คเกจ (กล่าวคือ เริ่มดำเนินการ) เนมสเปซจะถูกสร้างขึ้น คิดว่ามันเป็น บริบทการประเมิน เมื่อฟังก์ชัน ฯลฯ เสร็จสิ้นการดำเนินการ เน
ขณะนี้ คุณไม่สามารถเพิ่มเนมสเปซไปยังเอกสาร XML ได้โดยตรง เนื่องจากยังไม่รองรับในแพ็คเกจ Python xml ที่สร้างขึ้น ดังนั้น คุณจะต้องเพิ่มเนมสเปซเป็นแอตทริบิวต์ปกติให้กับแท็ก ตัวอย่างเช่น import xml.dom.minidom doc = xml.dom.minidom.Document() element = doc.createElementNS('https://hello.world/ns'
ใน Python แพ็คเกจเนมสเปซช่วยให้คุณกระจายโค้ด Python ในหลายโครงการ สิ่งนี้มีประโยชน์เมื่อคุณต้องการเผยแพร่ไลบรารีที่เกี่ยวข้องเป็นการดาวน์โหลดแยกต่างหาก ตัวอย่างเช่น ด้วยไดเร็กทอรี Package-1 และ Package-2 ใน PYTHONPATH Package-1/namespace/__init__.py Package-1/namespace/module1/__init__.py Package-2/
วิธีพื้นฐานในการส่งออกไปยังหน้าจอคือการใช้คำสั่งพิมพ์ >>> print 'Hello, world' Hello, world หากต้องการพิมพ์หลายรายการในบรรทัดเดียวกันโดยคั่นด้วยช่องว่าง ให้ใช้เครื่องหมายจุลภาคคั่นระหว่างรายการ ตัวอย่างเช่น: >>> print 'Hello,', 'World' Hello, World ในขณะที
วิธีพื้นฐานในการส่งออกไปยังหน้าจอคือการใช้คำสั่งพิมพ์ >>> print 'Hello, world' Hello, world หากต้องการพิมพ์หลายรายการในบรรทัดเดียวกันโดยคั่นด้วยช่องว่าง ให้ใช้เครื่องหมายจุลภาคคั่นระหว่างรายการ ตัวอย่างเช่น: >>> print 'Hello,', 'World' Hello, World ใน Pyth
ฟังก์ชัน raw_input() จะแสดงพรอมต์ให้กับผู้ใช้ (arg ทางเลือกของ raw_input([arg])) รับอินพุตจากผู้ใช้และส่งคืนข้อมูลที่ผู้ใช้ป้อนใน สตริง ตัวอย่างเช่น name = raw_input("What is your name? ") print "Hello, %s." % name สิ่งนี้แตกต่างจาก input() ตรงที่ตัวหลังพยายามตีความอินพุตที่ผู้ใ
ฟังก์ชัน input() แสดงพรอมต์ให้กับผู้ใช้ (arg ทางเลือกของ raw_input([arg])) รับอินพุตจากผู้ใช้ ใน Python 2.x จะส่งคืนข้อมูลที่ผู้ใช้ป้อนในรูปแบบที่ python ตีความ ตัวอย่างเช่น หากผู้ใช้ป้อน สวัสดี จะถูกเก็บไว้เป็นสตริง ขณะที่หากผู้ใช้ป้อน 5 จะถูกตีความว่าเป็น int ใน Python 3.x จะส่งคืนข้อมูลที่ผู้ใช้ป
ใน Python 3 print() เป็นฟังก์ชัน (อ็อบเจ็กต์) ในตัวที่ใช้ในการพิมพ์อาร์กิวเมนต์ที่เรามอบให้กับหน้าจอ ตัวอย่างเช่น >>> print("Hello!") Hello! >>> print(5) 5 ก่อนหน้านี้การพิมพ์เป็นคำสั่ง สามารถใช้ได้ดังนี้: >>> print "Hello!" Hello! >>> print 5
เป็นไวยากรณ์สำหรับขยายคำสั่ง print มาตรฐาน เพื่อให้สามารถใช้เพื่อพิมพ์ไปยังวัตถุที่เหมือนไฟล์ใดๆ แทน sys.stdout เริ่มต้น จึงสามารถพิมพ์ลงไฟล์ได้โดยตรง ตัวอย่าง ตัวอย่างเช่น คุณเปิดไฟล์ชื่อ my_file จากนั้นคุณสามารถเขียนถึงไฟล์โดยใช้: >>> my_file =open("my_file") >>>
ฟังก์ชัน open() จะเปิดไฟล์ขึ้นมา คุณสามารถใช้เช่น: f = open('my_file', 'r+') my_file_data = f.read() f.close() รหัสด้านบนเปิด my_file ในโหมดอ่าน จากนั้นจัดเก็บข้อมูลที่อ่านจาก my_file ใน my_file_data และปิดไฟล์ อาร์กิวเมนต์แรกของ open คือชื่อของไฟล์ และอันที่สองคือโหมดเปิด เป็นตัวกำ
ฟังก์ชัน close() ปิดไฟล์ที่เปิดอยู่ ตัวอย่างเช่น: f = open('my_file', 'r+') my_file_data = f.read() f.close() รหัสด้านบนเปิด my_file ในโหมดอ่าน จากนั้นจัดเก็บข้อมูลที่อ่านจาก my_file ใน my_file_data และปิดไฟล์ เมื่อคุณเปิดไฟล์ ระบบปฏิบัติการจะให้ตัวจัดการไฟล์เพื่ออ่าน/เขียนไฟล์ คุณต
ฟังก์ชัน raw_input() จะแสดงพรอมต์ให้กับผู้ใช้ (arg ทางเลือกของ raw_input([arg])) รับอินพุตจากผู้ใช้และส่งคืนข้อมูลที่ผู้ใช้ป้อนใน สตริง ตัวอย่างเช่น name = raw_input("What isyour name? ") print "Hello, %s." %name สิ่งนี้แตกต่างจาก input() ตรงที่ตัวหลังพยายามตีความอินพุตที่ผู้ใช้
ไฟล์ข้อความคือไฟล์ใดๆ ที่มีเฉพาะอักขระที่สามารถอ่านได้ ตรงกันข้ามกับไฟล์ข้อความ ไฟล์ ไบนารี คือไฟล์ใดๆ ก็ตามที่รูปแบบไม่ได้ประกอบด้วยอักขระที่อ่านได้ ไฟล์ไบนารีอาจมีตั้งแต่ไฟล์รูปภาพ เช่น JPEG หรือ GIF ไฟล์เสียง เช่น MP3 หรือรูปแบบเอกสารไบนารี เช่น Word หรือ PDF ความแตกต่างหลัก ระหว่างไฟล์ข้อความและ