Class

การประกาศ class สามารถทำได้โดย

    class Minimal:
        pass

และเมื่อต้องการสร้าง object จาก class ก็สามารถประกาศได้ดังนี้

    nothing = Minimal()
    zen = Minimal()

    nothing != zen   # True

การเพิ่ม attribute เข้าไปใน object ก็สามารถทำได้ง่ายๆ เช่น

    empty = set()
    def oh_wow():
        print('oh wow!')

    nothing.nothing = empty
    zen.satori = oh_wow

    zen.satori()
    # print: oh wow!

และเราสามารถดักการ init object ได้โดย

    class Planet:
        '''build the planet.'''
        name = 'Unobserved planet'

        def __init__(self, name='Undefined'):
            self.name = name

    venus = Planet('Venus')
    hades = Planet()

ทั้งนี้ การประกาศฟังก์ชันภายใน class จะต้องส่งผ่าน self เข้าไปด้วยนะครับ

ส่วนการสืบทอด class ทำได้เช่นนี้

    class Asteroid(Planet):
        '''build the asteroid'''
        name = 'Unobserved asteroid'

        def attack(self, target='Unknown'):
            print('{} impact into {}.'.format(self.name, target))

อนึ่ง การประกาศตัวแปรแบบ private ทำได้ดังนี้

    class spy:
        '''create spy'''
        __name = 'unknown'
        false_name = 'John Smith'

อย่างไรก็ตาม เรายังสามารถเข้าถึงตัวแปรแบบ private ได้อยู่ดี โดย

    me = spy()

    print(me._spy__name)
    # print private variable spy's name 

Nattawut Phetmak

Jack of all Trades

blog comments powered by Disqus