Data Attribute

នៅ​ក្នុង​ថ្នាក់​ក៏​ដូច​ជា​នៅ​ក្រៅ​ថ្នាក់​ដែរ ការយក data attribute ទៅ​ប្រើ ត្រូវ​ធ្វើ​ឡើង​តាម​រយៈ​ថ្នាក់​ឬ​តាម​រយៈ instance នៃ​ថ្នាក់​របស់ data attribute នោះ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

class Area():
    pi = 3.14

    def __init__(self, width, height):
        self.display(width, height)

    def rectangle(self, width, height):
        area = width * height
        return area

    def display(self, width, height):
        print('pi is', Area.pi)
        print('The area of the rectangle is', self.rectangle(width, height))

instance = Area(25, 5)
print(Area.pi)
pi is 3.14
The area of the rectangle is 125
3.14

ក្រៅ​ពី​ការយក data attribute មក​ប្រើ យើង​ក៏​អាច​យក​ទិន្នន័យ​នោះ​មក​ដោះដូរ​ថ្មី​បាន​ដែរ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖

class Area():
    pi = 3.14

    def __init__(self, width, height):
        self.display(width, height)

    def rectangle(self, width, height):
        area = width * height
        return area

    def display(self, width, height):
        print('pi is', Area.pi)
        print('The area of the rectangle is', self.rectangle(width, height))

Area.pi = 3.1415
print('The new pi is', Area.pi)
The new pi is 3.1415

យើង​ត្រូវ​ធ្វើ​ការកត់សំគាល់​ថា ការយក data attribute មក​ដោះដូរ​ថ្មី គឺ​ត្រូវ​ធ្វើ​ឡើង​តែ​តាម​រយៈ​ថ្នាក់​របស់​វា​តែ​ប៉ុណ្ណោះ​។ យើង​មិន​អាច​យក​ទិន្នន័យ​នោះ មក​ធ្វើការ​ដោះដូរ​តាម​រយៈ instance នៃ​ថ្នាក់​របស់​វា​បាន​ឡើយ​ យើង​នឹង​ដឹង​ថា​មក​ពី​ហេតុ​អ្វី​នៅ​ពេល​ខាង​មុខ​នេះ​៕