หน้าแรก
หน้าแรก
การซ่อนข้อมูล ใน Python เราใช้ขีดล่างคู่หน้าชื่อแอตทริบิวต์เพื่อทำให้ไม่สามารถเข้าถึงได้/ส่วนตัวหรือเพื่อซ่อน โค้ดต่อไปนี้แสดงให้เห็นว่าตัวแปร __hiddenVar ถูกซ่อนไว้อย่างไร ตัวอย่าง class MyClass: __hiddenVar = 0 def add(self, increment): self.
คำนำหน้าขีดล่างคู่ ใน Python เราใช้เครื่องหมายขีดล่างคู่ นั่นคือ __ ก่อนชื่อแอตทริบิวต์ และแอตทริบิวต์เหล่านั้นจะไม่สามารถเข้าถึงได้โดยตรง/ไม่ปรากฏภายนอก ขีดล่างสองครั้งทำให้ชื่อแอตทริบิวต์เสียหาย อย่างไรก็ตาม ตัวแปรนั้นยังคงสามารถเข้าถึงได้โดยใช้ไวยากรณ์ที่ซับซ้อน แต่โดยทั่วไปไม่ควรทำเช่นนั้น ขีดล่
ขีดล่างเดียว ชื่อในคลาสที่มีเครื่องหมายขีดล่างนำหน้านั้นโดยทั่วไปแล้วเพื่อระบุให้โปรแกรมเมอร์คนอื่นๆ ทราบว่าแอตทริบิวต์หรือวิธีการนั้นตั้งใจให้เป็นแบบส่วนตัว ขอแนะนำให้ใช้ขีดล่างเดี่ยวสำหรับกึ่งส่วนตัวและขีดล่างคู่สำหรับตัวแปรส่วนตัวทั้งหมด หากต้องการอ้างอิง PEP-8 - _single_leading_underscore:ตัว
เมตาคลาสคือคลาสที่มีคลาสเป็นอินสแตนซ์ เช่นเดียวกับคลาส ธรรมดา ที่กำหนดพฤติกรรมของอินสแตนซ์ของคลาส metaclass ยังกำหนดพฤติกรรมของคลาสและอินสแตนซ์ของคลาสนั้นด้วย Python รองรับ Metaclasses โปรแกรมเมอร์บางคนถือว่า metaclasses ใน Python เป็น วิธีแก้ปัญหาที่รอหรือมองหาปัญหา มีการใช้งาน metaclasses มากมาย
ใน Python 2.x มีคลาสสองสไตล์ขึ้นอยู่กับว่ามีหรือไม่มีประเภทในตัวเป็นคลาสฐาน - คลาสสไตล์ Old style หรือ Classic:ไม่มีประเภทในตัวเป็นคลาสพื้นฐาน - >>> class OldFoo: # no base class ... pass >>> OldFoo.__bases__ () คลาสรูปแบบ ใหม่:พวกเขามีประเภทในตัว
ใน Python 2.x มีคลาสสองสไตล์ขึ้นอยู่กับว่ามีหรือไม่มีประเภทในตัวเป็นคลาสฐาน - "classic" style or old style classes have no built-in type as a base class: >>> class OldSpam: # no base class ... pass >>> OldSpam.__bases__ () ใหม่ คลาสสไตล์:
หากเราใช้ตัวดำเนินการความเท่าเทียมกันตามโค้ดด้านล่าง เราจะได้ผลลัพธ์เป็นเท็จ class Integer: def __init__(self, number): self.number = number n1 = Integer(1) n2 = Integer(1) print bool(n1 == n2) เอาท์พุต False นี่เป็นเพราะว่าโดยค่าเริ่มต้น Python ใช้ตัวระบ
โค้ด Python ถูกจัดระเบียบในไฟล์ที่เรียกว่า modules และกลุ่มของโมดูลที่เกี่ยวข้องเรียกว่า packages โมดูลเป็นหน่วยที่แตกต่างกันซึ่งอาจมีหนึ่งหรือหลายชั้นเรียนที่เกี่ยวข้องอย่างใกล้ชิด ต้องนำเข้าโมดูลก่อนที่จะอ่าน ใช้ บำรุงรักษา และขยายหากจำเป็น โมดูลจึงเป็นหน่วยหรือนำมาใช้ใหม่ กฎคือ:โมดูลคือหน่วยของ
เรามีโค้ดต่อไปนี้ซึ่งแสดงการพึ่งพาแบบวงกลมระหว่างคลาส python class P(): q = Q().do_something(); def do_something(self): pass class Q(): p = P().do_something(); def do_something(sel
มีชื่อโมดูล enum ใน python โดยมี hep ซึ่ง enum ใช้ใน python #import enum import enum # use enum in class class Car(enum.Enum): suzuki = 1 Hyundai = 2 Dezire = 3 print ("All the enum values are : ") for c in (Car): print(c)
ตัวแปรสาธารณะ Python ไม่ได้จำกัดเราจากการเข้าถึงตัวแปรใดๆ หรือเรียกวิธีการของสมาชิกในโปรแกรม python ตัวแปรและเมธอดของ python ทั้งหมดเป็นแบบสาธารณะโดยค่าเริ่มต้นใน Python ดังนั้นเมื่อเราต้องการทำให้ตัวแปรหรือวิธีการใด ๆ เป็นแบบสาธารณะ เราไม่ทำอะไรเลย ให้เราดูตัวอย่างด้านล่าง − ตัวอย่าง class Mug: &nb
ไม่มีฟังก์ชันที่ใช้ชื่อคลาสแบบเต็มและส่งคืนคลาส อย่างไรก็ตาม เราสามารถกำหนดฟังก์ชันที่มีฟังก์ชันนี้ได้ ตัวอย่าง โค้ดต่อไปนี้เป็นฟังก์ชันดังกล่าว def get_class( s ): parts = s.split('.') module = ".".join(parts[:-1]) n = __import__( module )
จากเอกสาร Python - ออบเจ็กต์คลาสรองรับการดำเนินการสองประเภท:การอ้างอิงแอตทริบิวต์และการสร้างอินสแตนซ์ การอ้างอิงแอตทริบิวต์ใช้ไวยากรณ์มาตรฐานที่ใช้สำหรับการอ้างอิงแอตทริบิวต์ทั้งหมดใน Python:obj.name ชื่อแอตทริบิวต์ที่ถูกต้องคือชื่อทั้งหมดที่อยู่ในเนมสเปซของคลาสเมื่อสร้างอ็อบเจ็กต์คลาส ดังนั้นหากคำ
การเชื่อมโยงวิธีการ Method chaining เป็นเทคนิคที่ใช้สำหรับการเรียกหลายเมธอดบนอ็อบเจกต์เดียวกัน โดยใช้การอ้างอิงอ็อบเจ็กต์เพียงครั้งเดียว ตัวอย่าง − สมมติว่าเรามีคลาส Foo ที่มีสองวิธีคือ bar และ baz เราสร้างตัวอย่างของคลาส Foo - foo = Foo() โดยไม่ต้องผูกมัดวิธีการเรียกทั้ง bar และ baz บนวัตถุ foo
โค้ดต่อไปนี้แสดงวิธีรับชื่อคลาสของอินสแตนซ์ที่เป็นปัญหา ตัวอย่าง class Number: def __init__(self, number): self.number = number n1 = Number(1) print n1.__class__ print n1.__class__.__name__ ผลลัพธ์ ให้ผลลัพธ์ __main__.Number Number
ไม่มี ตัวแปรส่วนตัว ในคลาส Python เช่นนี้ ตัวแปรและเมธอดทั้งหมดใน Python เป็นแบบสาธารณะโดยค่าเริ่มต้น บางครั้งมีการจำลองตัวแปรส่วนตัวโดยใช้เครื่องหมายขีดล่างคู่ __ นำหน้าชื่อตัวแปร ซึ่งทำให้ตัวแปรเหล่านี้มองไม่เห็นหรือไม่มองเห็นได้ง่ายภายนอกชั้นเรียนที่มีตัวแปรเหล่านี้ สิ่งนี้ทำได้โดยการใช้ชื่อ ตัวแ
โค้ดต่อไปนี้แสดงการใช้ตัวแปรส่วนกลางในขอบเขตของคลาส ตัวอย่าง class Foo(object): bar = 2 foo = Foo() print Foo.bar, print foo.bar, # setting foo.bar would not change class attribute bar # but will create it in the instance foo.bar = 3 print Foo.bar, print foo.bar, # to change class attr
คลาสสามารถได้รับมาจากคลาสพื้นฐานมากกว่าหนึ่งคลาสใน Python สิ่งนี้เรียกว่าการสืบทอดหลายรายการ ในการสืบทอดหลายรายการ คุณลักษณะของคลาสพื้นฐานทั้งหมดจะสืบทอดไปยังคลาสที่ได้รับ ไวยากรณ์สำหรับการสืบทอดหลายรายการคล้ายกับการสืบทอดเดี่ยว class Super1: pass class Super2: pass class
Python ไม่ได้อิงตามคลาสโดยเฉพาะ - หน่วยพื้นฐานของการสลายตัวของโค้ดใน Python คือโมดูล โมดูลเป็นสิ่งที่แตกต่างซึ่งอาจมีหนึ่งหรือสองโหลคลาสที่เกี่ยวข้องอย่างใกล้ชิด โมดูลอาจมีฟังก์ชันพร้อมกับคลาส ใน Python มีกฎหนึ่งโมดูล =หนึ่งไฟล์ ใน Python หากคุณจำกัดตัวเองไว้ที่หนึ่งคลาสต่อไฟล์ (ซึ่งใน Python ไม่ได
การทำให้เป็นอนุกรมอ็อบเจ็กต์และการดีซีเรียลไลซ์เซชันเป็นลักษณะประจำของโปรแกรม Python ที่ไม่สำคัญใดๆ การบันทึกลงในไฟล์ การอ่านไฟล์การกำหนดค่า การตอบสนองต่อคำขอ HTTP ทั้งหมดเกี่ยวข้องกับการทำให้เป็นอนุกรมอ็อบเจ็กต์และการดีซีเรียลไลซ์เซชัน การทำให้เป็นอนุกรมและการดีซีเรียลไลซ์เซชันเกี่ยวข้องกับรูปแบบ