បើយើងលើកយកបញ្ហាដោះស្រាយរកក្រឡាផ្ទៃចតុកោណមកវិភាគមើលម្តងទៀត យើងឃើញថា ដើម្បីរកក្រឡាផ្ទៃចតុកោណ យើងត្រូវមានព័ត៌មានពីរគឺ width និង height (បណ្តោយ & ទទឹង) ពីព្រោះ ក្រឡាផ្ទៃ គឺជាផលគុនរវាង width និង height ។ នៅក្នុងការសរសេរកម្មវិធី ព័ត៌មានចាំបាច់សម្រាប់យកមកដោះស្រាយបញ្ហាទាំងនោះត្រូវហៅថា ទិន្នន័យ (data) ។ ដូចនេះការដោះស្រាយបញ្ហារកក្រឡាផ្ទៃចតុកោណកន្លងមក គឺជាការយកទិន្នន័យដែលជា width និងទិន្នន័យដែលជា height មកធ្វើប្រមាណវិធីគុន។
នៅក្នុងភាសា Python ដើម្បីឲ្យមានទិន្នន័យចាំបាច់ទាំងនោះ យើងចាំបាច់ត្រូវតែសរសេរប្រាប់កំព្យូទ័រនិងឬទូរស័ព្ទដៃ អោយបង្កើតទិន្នន័យទាំងនោះទុកនៅក្នុង សតិ (memory) របស់វាផ្ទាល់តែម្តង។ ហើយការសរសេរកម្មវិធីបង្កើតទិន្នន័យផ្សេងៗ នៅក្នុងភាសា Python ត្រូវធ្វើឡើងដូចខាងក្រោមនេះ៖
3.14
ខាងលើនេះ គឺជាកម្មវិធីជាភាសា Python ជាអប្បបរិមា ដែលនៅក្នុងនោះមានបញ្ជាតម្រូវឲ្យបង្កើតទិន្នន័យ ដែលជាលេខ 3.14 មួយទុកនៅក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិក។
នៅក្នុងភាសា Python ផ្នែកនៃសតិរបស់កំព្យូទ័រនិងឬទូរស័ព្ទដៃ ដែលមានព័ត៌មាននៅក្នុងនោះ ត្រូវហៅថា វត្ថុ (object) ។ ដូចនេះការសរសេរលេខ 3.14 នៅក្នុងកម្មវិធីខាងលើ គឺជាការបង្កើតវត្ថុមួយដែលជាផ្នែកតូចមួយនៃសតិរបស់កំព្យូទ័រនិងឬទូរស័ព្ទដៃដើម្បីរក្សាទុកនូវទិន្នន័យមួយដែលជាលេខ 3.14 ។ ជាទូទៅ យើងអាចប្រៀបប្រដូចវត្ថុទៅនឹងប្រអប់មួយដែលមានទិន្នន័យនៅក្នុងនោះ។
ក៏ប៉ុន្តែ វត្ថុដែលត្រូវបានបង្កើតឡើងដូចនៅក្នុងកម្មវិធីខាងលើនេះ ត្រូវបានលុបចេញទៅវិញជាបន្ទាន់ពីក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិក គឺយើងមិនអាចយកវាទៅប្រើការធ្វើអ្វីផ្សេងទៀតបានឡើយ។ ហើយដើម្បីកុំឲ្យវត្ថុដែលត្រូវបានបង្កើតរួចហើយនោះ ត្រូវលុបចេញទៅវិញ យើងត្រូវដាក់ឈ្មោះឲ្យវា ដោយត្រូវធ្វើដូចខាងក្រោមនេះ៖
PI = 3.14
យើងក៏ត្រូវធ្វើការកត់សម្គាល់ផងដែរថា សញ្ញាស្មើ (=) នៅក្នុងភាសា Python គឺជាសញ្ញាប្រើសម្រាប់ ភ្ជាប់ (bind) ឈ្មោះ (identifier) ទៅនឹងវត្ថុ គឺមិនមែនជាសញ្ញាប្រើសម្រាប់បញ្ជាក់លទ្ធផល បានមកពីការធ្វើប្រមាណវិធីឡើយ។
ឈ្មោះរបស់វត្ថុអាចជាពាក្យជាភាសាណាក៏បានដែរ ឲ្យតែឈ្មោះទាំងនោះ ត្រូវចាប់ផ្តើមដោយតួអក្សរ មិនមែនជាលេខ។ ក៏ប៉ុន្តែយើងអាចប្រើសញ្ញា _ ជាតួអក្សរទីមួយបាន។ ម៉្យាងទៀត ឈ្មោះរបស់វត្ថុមិនត្រូវមានអក្សរដកឃ្លា (space) នៅក្នុងនោះឡើយ ហើយឈ្មោះទាំងនោះ ត្រូវតែខុសពី ពាក្យពិសេស (keyword) មួយចំនួន ដែលមាននៅក្នុងភាសា Python មានដូចខាងក្រោមនេះ៖
False, await, else, import, pass, None, break, except, in, raise, True, class, finally, is, return, and, continue, for, lambda, try, as, def, from, nonlocal, while, assert, del, global, not, with, async, elif, if, or, yield
ចំពោះឈ្មោះរបស់វត្ថុ ដែលជាអក្សរឡាតាំង ឈ្មោះជាអក្សរធំខុសពីឈ្មោះជាអក្សរតូច ដូចជា NUMBER, Number, number គឺជាឈ្មោះខុសៗគ្នា។ ឈ្មោះរបស់វត្ថុគួរតែជាពាក្យមានន័យអ្វីម៉្យាង ដែលស្តែងចេញពីតួនាទីរបស់វត្ថុនោះ។
តាមការសង្កេតជាក់ស្តែង ការភ្ជាប់ឈ្មោះណាមួយទៅនឹងវត្ថុណាមួយ ស្រដៀងនឹងការតាងអញ្ញតនៅក្នុងគណិតវិទ្យាដែរ។ មួយវិញទៀត ក្រោយពីវត្ថុមួយមានឈ្មោះរួចហើយ តាមរយៈឈ្មោះនេះ យើងអាចយកវត្ថុទៅប្រើនៅទីណាក៏បានដែរ។
នៅក្នុងកម្មវិធីខាងលើនេះ ក្រោយពីឈ្មោះ PI ត្រូវបានភ្ជាប់ទៅនឹងវត្ថុដែលជាលេខ 3.14 រួចមក វត្ថុនោះអាចស្ថិតនៅក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិក រហូតដល់ចប់កម្មវិធី។ ក៏ប៉ុន្តែទោះជាយ៉ាងណាក៏ដោយ ក៏យើងនៅតែមិនអាចមើលឃើញវត្ថុលេខ 3.14 នោះដែរ គឺវាមានតែនៅក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិកតែប៉ុណ្ណោះ។ ហើយបើយើងចង់មើលឃើញតំលៃលេខនោះ យើងត្រូវតែធ្វើដូចខាងក្រោមនេះ៖
PI = 3.14
print(PI)
យើងឃើញថាការភ្ជាប់ឈ្មោះទៅនឹងវត្ថុណាមួួ គឺជាប្រការដែលធ្វើឲ្យវត្ថុនោះអាចស្ថិតនៅក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិក រហូតដល់ចប់កម្មវិធី ហើយវាក៏ជាប្រការដែលធ្វើឲ្យយើងអាចយកវត្ថុនោះទៅប្រើការធ្វើអ្វីផ្សេងៗទៀតបានដែរ។ ក៏ប៉ុន្តែ លើសពីនេះទៀត ក្រៅពីការភ្ជាប់ឈ្មោះតែមួយ ឲ្យទៅវត្ថុណាមួយ យើងក៏អាចភ្ជាប់ឈ្មោះជាច្រើនឲ្យទៅវត្ថុនោះបានដែរ ដោយធ្វើដូចខាងក្រោមនេះ៖
PI = 3.14
NUMBER = PI
print(PI)
print(NUMBER)
នៅលើបន្ទាត់លេខ 2 ការសរសេរថា NUMBER = PI គឺជាបញ្ជាតម្រូវឲ្យភ្ជាប់ឈ្មោះ NUMBER មួយទៀតទៅនឹងវត្ថុដែលមានឈ្មោះថា PI មួយរួចទៅហើយ។ ជាលទ្ធផល វត្ថុដែលមានតំលៃលេខ 3.14 មានឈ្មោះរហូតដល់ទៅពីរ គឺឈ្មោះមួយជា PI និងឈ្មោះមួយទៀតជា NUMBER ។
ឈ្មោះរបស់វត្ថុមានតួនាទីសំខាន់ណាស់ សម្រាប់សម្គាល់ទីតាំងរបស់វត្ថុនៅក្នុងសតិរបស់ឧបករណ៍អេឡីចត្រូនិក ហើយបើគ្មានឈ្មោះនោះទេ យើងនឹងគ្មានមធ្យោបាយណាមួយ ដែលអនុញ្ញាតឲ្យយើងអាចយកវត្ថុទៅប្រើប្រាស់នៅទីកន្លែងផ្សេងៗទៀតបានឡើយ។ ក៏ប៉ុន្តែផ្ទុយទៅវិញ យើងអាចដកយកឈ្មោះរបស់វត្ថុណាមួយ ទៅភ្ជាប់នឹងវត្ថុផ្សេងទៀតបាន ដោយធ្វើដូចខាងក្រោមនេះ៖
PI = 3.14
PI = 3.1415
print(PI)
នៅលើបន្ទាត់លេខ 2 ការសរសេរថា PI = 3.1415 គឺជាបញ្ជាតម្រូវឲ្យយកឈ្មោះ PI ដែលជាឈ្មោះរបស់វត្ថុជាលេខ 3.14 រួចទៅហើយនោះ ទៅភ្ជាប់នឹងវត្ថុដែលជាលេខ 3.1415 វិញម្តង។ ជាលទ្ធផល វត្ថុលេខ 3.14 ត្រូវបាត់ឈ្មោះ និងត្រូវលុបចេញពីក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិកដោយស្វ័យប្រវត្តិ។ ការលុបវត្ថុដោយស្វ័យប្រវត្តិតាមរបៀបនេះ ជាភាសាអង់គ្លេសត្រូវហៅថា garbage collection ដែលយើងអាចបកប្រែជាភាសាខ្មែរមកថា យន្តការបោសសំអាត ដែលតែងតែកើតមានឡើងជាដរាប នៅពេលណាដែលវត្ថុទាំងឡាយត្រូវបាត់ឈ្មោះអស់។
ទន្ទឹមនឹងនេះ យើងក៏ត្រូវធ្វើការកត់សម្គាល់ផងដែរថា វត្ថុមួយត្រូវលុបចេញពីក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិក តែក្នុងករណីណាដែលវត្ថុនោះត្រូវបាត់ឈ្មោះអស់តែប៉ុណ្ណោះ តែបើវត្ថុនោះមានឈ្មោះលើសពីមួយ ការយកឈ្មោះណាមួយទៅភ្ជាប់នឹងវត្ថុផ្សេងទៀត នឹងមិនបណ្តាលឲ្យវត្ថុដើមត្រូវលុបចេញពីក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិកឡើយ ពីព្រោះនៅមានឈ្មោះផ្សេងៗទៀតនៅជាប់នឹងវត្ថុនោះ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
sale = 1000
total = sale
sale = 2000
print(sale)
print(total)
នៅលើបន្ទាត់លេខ 3 ការសរសេរថា sale = 2000 គឺជាបញ្ជាតម្រូវឲ្យដកយកឈ្មោះ sale ដែលជាឈ្មោះរបស់វត្ថុលេខ 1000 រួចទៅហើយនោះ ទៅភ្ជាប់នឹងវត្ថុដែលជាលេខ 2000 វិញម្តង។ ប្រការនេះមិនបានធ្វើឲ្យវត្ថុដែលជាលេខ 1000 ត្រូវលុបចេញពីក្នុងសតិរបស់ឧបករណ៍អេឡិចត្រូនិកឡើយ ពីព្រោះនៅមានឈ្មោះ total មួយទៀត នៅជាប់នឹងវត្ថុនោះ៕