Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. Data Hiding ในคลาส Python ทำงานอย่างไร

    Data Hiding (การซ่อนข้อมูล) ใน Python ใช้ Double Underscore นำหน้าชื่อแอตทริบิวต์ เพื่อทำให้เข้าถึงไม่ได้/เป็น Private หรือซ่อนไว้ ตัวอย่างการซ่อนตัวแปร class MyClass: __hiddenVar = 0 def add(self, increment): self.__hiddenVar += increment print(self.__hiddenVar) myObject =

  2. Double Underscore Prefix ทำอะไรในตัวแปร Python

    Double Underscore Prefix (__) ใน Python ใช้ Double Underscore นำหน้าชื่อแอตทริบิวต์ แอตทริบิวต์เหล่านั้นจะ เข้าถึง/มองเห็นโดยตรงจากภายนอกไม่ได้ Double Underscore จะทำ Name Mangling เปลี่ยนชื่อแอตทริบิวต์ แม้จะเข้าถึงได้ด้วยไวยากรณ์พิเศษ แต่ไม่ควรทำ จากเอกสาร Python: หากคลาสของคุณตั้งใจจะถูกสืบทอด

  3. ความหมายของ Single Underscore นำหน้าตัวแปรใน Python

    Single Underscore (_) ชื่อในคลาสที่ขึ้นต้นด้วย Underscore เดียว เป็น สัญญาณให้โปรแกรมเมอร์คนอื่น ว่าแอตทริบิวต์หรือเมธอดนี้ตั้งใจจะเป็น Private (Internal Use) แนะนำให้ใช้ Single Underscore สำหรับ Semi-private และ Double Underscore สำหรับ Fully Private จาก PEP-8: _single_leading_underscore: weak i

  4. Metaclass ใน Python คืออะไร

    Metaclass คือคลาสที่มีคลาสเป็นอินสแตนซ์ (Instances) เหมือนที่คลาสทั่วไปกำหนดพฤติกรรมของอินสแตนซ์ Metaclass ก็กำหนดพฤติกรรมของคลาสและอินสแตนซ์ของมัน Python รองรับ Metaclass บางโปรแกรมเมอร์มองว่า Metaclass ใน Python เป็น โซลูชันที่รอค้นหาปัญหา การประยุกต์ใช้ Metaclass: Logging และ Profiling

  5. คลาส Python สืบทอดออบเจ็กต์อย่างไร

    ใน Python 2.x มี 2 รูปแบบคลาส: Old-style / Classic Classes (ไม่มี Built-in Type เป็น Base Class) >>> class OldFoo: ... pass >>> OldFoo.__bases__ () New-style Classes (มี Built-in Type เป็น Base Class โดยตรง/โดยอ้อม คือ object) >>> class NewFoo(object): ... pass &

  6. ความแตกต่างระหว่าง Old-style และ New-style Classes ใน Python

    ใน Python 2.x มี 2 รูปแบบคลาส ขึ้นอยู่กับการมีหรือไม่มี Built-in Type เป็น Base Class Old-style / Classic Classes (ไม่มี Base Class) >>> class OldSpam: ... pass >>> OldSpam.__bases__ () New-style Classes (มี Built-in Type เป็น Base Class โดยตรงหรือโดยอ้อม คือ object) >>

  7. วิธีใช้ Equality Operator (==) ในคลาส Python

    หากใช้ Equality Operator โดยไม่กำหนดเอง จะได้ False เพราะ Python เปรียบเทียบ Object Identifier (Memory Address) class Integer: def __init__(self, number): self.number = number n1 = Integer(1) n2 = Integer(1) print(bool(n1 == n2)) # False แก้ไขด้วยการ Override __eq__ class Integer:

  8. ควรใส่คลาส Python กี่ตัวในไฟล์เดียว

    โค้ด Python จัดระเบียบในไฟล์ที่เรียกว่า Modules และกลุ่มโมดูลที่เกี่ยวข้องเรียกว่า Packages โมดูลเป็นหน่วยที่แตกต่างออกไป อาจมีคลาสที่เกี่ยวข้องกัน 1 หรือหลายตัว โมดูลต้องถูก Import ก่อนใช้งาน รักษา และขยายได้ ดังนั้นโมดูลคือหน่วยของการนำกลับมาใช้ใหม่ (Reuse) กฎคือ: โมดูลคือหน่วยของการนำกลับมาใช้ใ

  9. วิธีจัดการ Circular Dependency ระหว่างคลาส Python

    โค้ดต่อไปนี้แสดง Circular Dependency ระหว่างคลาส: class P(): q = Q().do_something() def do_something(self): pass class Q(): p = P().do_something() def do_something(self): pass ในกรณีของคลาส ต่างจากฟังก์ชัน Body ของคลาสจะถูก Execute ตอนนิยาม (Definition Time) เพื่อนิ

  10. วิธีใช้ Enum ในคลาส Python

    Python มีโมดูล enum สำหรับการใช้ Enum ในคลาส import enum class Car(enum.Enum): suzuki = 1 Hyundai = 2 Dezire = 3 print(All the enum values are:) for c in Car: print(c) Enum ช่วยให้กำหนดค่าคงที่กลุ่มได้อย่างชัดเจน และสามารถวนลูปเข้าถึงค่าแต่ละค่าได้

  11. ตัวแปร Public และ Private ในคลาส Python

    ตัวแปร Public (Public Variables) Python ไม่จำกัดการเข้าถึงตัวแปรหรือเรียกเมธอดใดๆ ทุกตัวแปรและเมธอดเป็น Public โดยค่าเริ่มต้น เมื่อต้องการให้เป็น Public เพียงแค่ไม่ต้องทำอะไรเพิ่มเติม ตัวอย่าง class Mug: def __init__(self): self.color = None self.content = None def fill(self

  12. วิธีโหลดคลาส Python แบบไดนามิก (Dynamic Class Loading)

    Python ไม่มีฟังก์ชันสำเร็จรูปที่รับ Fully Qualified Class Name แล้วคืนคลาส แต่สามารถเขียนฟังก์ชันเองได้ ตัวอย่างฟังก์ชัน def get_class(class_path): parts = class_path.split(.) module = ..join(parts[:-1]) m = __import__(module) for comp in parts[1:]: m = getattr(m, comp)

  13. วิธีอ้างอิงแอตทริบิวต์ของคลาสใน Python

    จากเอกสาร Python: ออบเจ็กต์คลาสรองรับ 2 การดำเนินการ: Attribute References (การอ้างอิงแอตทริบิวต์) และ Instantiation (การสร้างอินสแตนซ์) Attribute References ใช้ไวยากรณ์มาตรฐาน obj.name ชื่อแอตทริบิวต์ที่ถูกต้องคือชื่อทั้งหมดที่อยู่ใน Namespace ของคลาสเมื่อสร้างคลาสเสร็จ ตัวอย่าง: class MyClass:

  14. อธิบาย Method Chaining ในคลาส Python

    Method Chaining คืออะไร Method Chaining เป็นเทคนิคเรียกเมธอดหลายตัวติดต่อกันบนออบเจ็กต์เดียว โดยใช้การอ้างอิงออบเจ็กต์เพียงครั้งเดียว ตัวอย่าง สมมติมีคลาส Foo ที่มีเมธอด bar และ baz foo = Foo() ไม่ใช้ Method Chaining: foo.bar() foo.baz() ใช้ Method Chaining: foo.bar().baz() การนำไปใช้งานง่ายๆ c

  15. วิธีดึงชื่อคลาสจากอินสแตนซ์ใน Python

    โค้ดต่อไปนี้แสดงวิธีดึงชื่อคลาสของอินสแตนซ์ที่ต้องการ ตัวอย่าง class Number: def __init__(self, number): self.number = number n1 = Number(1) print(n1.__class__) print(n1.__class__.__name__) ผลลัพธ์ __main__.Number Number __class__ คืนคลาสตัวเอง ส่วน __class__.__name__ คืนชื่อคลาสเป็น

  16. Python มีตัวแปร Private ในคลาสหรือไม่

    ใน Python ไม่มีตัวแปร Private (Private Variables) จริงๆ ตัวแปรและเมธอดทุกตัวเป็น Public โดยค่าเริ่มต้น อย่างไรก็ตาม มีการเลียนแบบ Private Variables โดยใช้ Double Underscore (__) นำหน้าชื่อตัวแปร ทำให้ตัวแปรเหล่านั้นมองไม่เห็นหรือเข้าถึงยากจากภายนอกคลาสที่ประกอบอยู่ ทำได้ผ่าน Name Mangling ตัวแปรเห

  17. วิธีที่ถูกต้องในการกำหนดตัวแปร Global ที่มีขอบเขตคลาสใน Python

    โค้ดตัวอย่างต่อไปนี้แสดงการใช้ตัวแปรกลางในขอบเขตคลาส (Class Attribute) ตัวอย่าง class Foo(object): bar = 2 foo = Foo() print(Foo.bar) print(foo.bar) # การกำหนด foo.bar จะไม่เปลี่ยน class attribute # แต่จะสร้าง instance attribute ใหม่ foo.bar = 3 print(Foo.bar) print(foo.bar) # เพื่อเปลี่ยน c

  18. ตัวแปรคลาสทำงานอย่างไรใน Multiple Inheritance ของ Python

    ใน Python คลาสสามารถสืบทอดมาจาก Base Class หลายคลาสได้ เรียกว่า Multiple Inheritance ใน Multiple Inheritance คุณสมบัติของ Base Class ทั้งหมดจะถูกสืบทอดไปยัง Derived Class ไวยากรณ์คล้าย Single Inheritance class Super1: pass class Super2: pass class MultiDerived(Super1, Super2): pass

  19. ควรนิยามหลายคลาสในไฟล์เดียวหรือไม่ใน Python

    Python ไม่ได้บังคับให้ใช้คลาสเพียงอย่างเดียว หน่วยพื้นฐานของการแบ่งโค้ดคือ Module โมดูลหนึ่งอาจมีคลาสที่เกี่ยวข้องกัน 1-2 โหล และอาจมีฟังก์ชันปนอยู่ด้วย ใน Python กฎคือ 1 โมดูล = 1 ไฟล์ หากจำกัดให้ 1 คลาสต่อ 1 ไฟล์ (ซึ่ง Python ไม้ห้าม) อาจได้ไฟล์จำนวนมากขนาดเล็ก ยากต่อการจัดการ ดังนั้น ขึ้นอยู่กั

  20. วิธี Serialize คลาสใน Python

    การ Serialize และ Deserialize ออบเจ็กต์เป็นส่วนสำคัญของโปรแกรม Python ที่ซับซ้อน ไม่ว่าจะเป็นการบันทึกไฟล์ อ่านไฟล์ config หรือตอบสนอง HTTP Request ทั้งหมดเกี่ยวข้องกับ Serialization มีรูปแบบ โปรโตคอล และวิธีการหลายอย่าง การเลือกใช้ส่งผลต่อความเร็วและความปลอดภัย ตัวอย่างใช้โมดูล pickle (หรือ cPick

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:47/451  20-คอมพิวเตอร์/Page Goto:1 41 42 43 44 45 46 47 48 49 50 51 52 53