Saturday, November 11, 2017

Python2 Lesson 13 (Conclusion)


Lesson 1 ၾကည့္ရန္ link  >> Click Here
Lesson 2 ၾကည့္ရန္ link  >> Click Here
Lesson 3 ၾကည့္ရန္ link  >> Click Here
Lesson 4 ၾကည့္ရန္ link >> Click Here
Lesson 5 ၾကည့္ရန္ link >> Click Here

Lesson 6 ၾကည့္ရန္ link >> Click Here
Lesson 7 ၾကည့္ရန္ link >> Cl
ick Here
Lesson 8 ၾကည့္ရန္ link >> Click Here
Lesson 9 ၾကည့္ရန္ link >> Click Here
Lesson 10 ၾကည့္ရန္ link >> Click Here

Lesson 11 ၾကည့္ရန္ link >> Click Here
Lesson 12 ၾကည့္ရန္ link >> Click Here
.
စတင္ေလ့လာမည့္သူမ်ား သင္ခန္းစာ ၁ မွ စၾကည့္ပါ
ေက်ာ္ျပီးမၾကည့္ပါႏွင့္
တစ္ခုစီကို လိုက္လုပ္ၾကည့္ပါ
......................................................
Lesson 1
.
Python Programming
..
ကဲ ဒီေန႔ သင္ခန္းစာေလးေတြကို ဆက္ရေအာင္။
OOP = Object Oriented Programming ကို ဒီေန႔ ေဆြးေႏြးပါမယ္ဗ်။
Object ေတြနဲ႔ တည္ေဆာက္ ေရးသားရတဲ့ ပံုစံလို႔ မွတ္သားထားႏိုင္ပါတယ္။ Object ပံုစံဆိုတာက ObjectName.Attibute&method ေပါ့။
Object မွာက အခ်က္အလက္  attibute နဲ႔ အဲဒါေတြ အလုပ္လုပ္ႏိုင္ဖို႔ Method ဆိုျပီး ပါဝင္ပါတယ္။ Attibuet ဆိုတာကေတာ့ Object အခ်က္အလက္ေတြျဖစ္တဲ့ အမည္၊ အသက္၊ စတဲ့ ေဒတာေတြကို ဆိုလိုပါတယ္။
Method ဆိုရာမွာေတာ့ Objct အလုပ္လုပ္ႏိုင္တဲ့အရာ ဘာအလုပ္လုပ္တယ္၊ ဘာေတြတတ္တယ္ စသည္ျဖင့္ေပါ့။ အဲဒီအပိုင္းေတြကို ဆိုလိုပါတယ္။
Object ေရးရာမွာေတာ့ တိုက္ရိုက္ေရးလို႔ မရပါဘူး။ ေရးႏိုင္ဖိုု႔အတြက္  Class ေတြ တည္ေဆာက္ေပးရပါတယ္ဗ်။
ကဲ လက္ေတြ႔ေလး သိရေအာင္ idle ေလးဖြင့္ ထံုးစံအတိုင္း file >> new ေလးေခၚ။ စ ၾက ရေအာင္။
္...
ပထမဆံုးအေနနဲ႔ ထြက္လာတဲ့ new file ထဲမွာ class တစ္ခု တည္ေဆာက္ျပပါမယ္။
class kmn:
name = 'Khit Minnyo'
age = 29
class အမည္ကို ကိုယ္ႀကိဳက္တာ သတ္မွတ္ႏိုင္ပါတယ္။ ေနာက္တစ္ခု def ေလးထပ္ျဖည့္လိုက္ရေအာင္။
class kmn:
    name = 'Khit Minnyo'
    age = 29
    def method1(self):
        return "Hello, I'm method1..."
    def method2(self):
        return "Hello, I'm method1..."
method တည္ေဆာက္ပံုကိ ေလ့လာပါ။ idle မွာ စာရိုက္သြားတဲ့အခါ အျပာေရာင္ နံ႔ အစိမ္းေရာင္ေနရာက စာသားေတြမွာ ကိုယ္လိုခ်င္တဲ့စာေတြကို ရိုက္ႏိုင္ပါတယ္။
method တည္ေဆာက္တဲ့အခါ method နာမည္ကို ကိုယ္ႀကိဳက္ရာကို သတ္မွတ္ႏိုင္ပါေသာ္လည္း ေနာက္မွာ (self) ပါဝင္ရမွာျဖစ္ပါတယ္။ ခုေန ဖိုင္ကို Desktop ေပၚ Save ျပီး Run ၾကည့္ရင္ ဘာမွ ေတြ႕ရမွာ မဟုတ္ေသးပါဘူး။
ထပ္ျဖည့္ရေအာင္။
class kmn:
    name = 'Khit Minnyo'
    age = 29
    def method1(self):
        return "Hello, I'm method1..."
    def method2(self):
        return "Hello, I'm method1..."
 
khit = kmn()
print khit.name
print khit.age
... ဆုိျပီး ထပ္ျဖည့္လိုက္ျပီးခ်ိန္မွာေတာ့ RUN ၾကည့္မယ္ဆိုရင္ name & age ကို ျမင္ေတြ႕ရမွာျဖစ္ပါတယ္။
class kmn:
    name = 'Khit Minnyo'
    age = 29
    def method1(self):
        return "Hello, I'm method1..."
    def method2(self):
        return "Hello, I'm method1..."
 
khit = kmn()
print khit.name
print khit.age
print khit.method1()
print khit.method2()
ထပ္မံ RUN ၾကည့္လိုက္ပါဦး။ ဘာေတြ ထပ္တိုးလာလဲဆိုတာေလး သတိထားေနေပးေနာ္။
ေအာက္ပါအတိုင္း ထပ္မံ ျဖည့္လိုက္ရေအာင္။
class kmn:
    name = 'Khit Minnyo'
    age = 29
    def method1(self):
        return "Hello, I'm method1..."
    def method2(self):
        return "Hello, I'm method1..."
    def method3(self,x):
        self.name=x
        return x
 
khit = kmn()
print khit.name
print khit.age
print khit.method1()
print khit.method2()
print khit.method3("Aung Aung")
RUN ၾကည့္လိုက္ပါဦး။ ဘာေတြ ထူးျခားသြားပါသလဲ။
....
.....
ဒီေန႔အတြက္ lesson မ်ားပါမယ္။ lesson ၁ ကိုေတာ့ ခုေနရာမွာ ရပ္နားမွာျဖစ္ပါတယ္။ Lesson 2 ကို ဆက္ေလ့လာရေအာင္။
...........................................................................................................

Lesson 2
.
Python Programming
ဒီေန႔အတြက္ lesson 2 ကို သီးသန္႔ေလး ထပ္လုပ္ၾကည့္ရေအာင္။  Lesson 1 ကလိုပဲ class ပါပဲ။
ဒါေပမယ့္ lesson 2 မွာေတာ့ class ကိုမွ method နဲ႔ ခ်ိတ္ဆက္ျပီး ေလ့လာရေအာင္ပါ။
...
အသစ္ စတင္မွာျဖစ္လို႔ idle ေတြ ဖြင့္ထားတာရွိရင္ ပိတ္လိုက္ပါဦး။ ျပီးမွ အသစ္ျပန္ဖြင့္သံုးပါ။ 
class khit:
    def one(self,name):
        self.name=name
    def two(self):
        return self.name
    def three(self):
        return "Hello %s" % self.name
ပထမဆံုးအေနနဲ႔ khit ဆိုတဲ့ class တစ္ခုကို တည္ေဆာက္လိုက္ပါတယ္။ 
ျပီးတဲ့အခါ def နဲ႔ defination ဖြင့္လိုက္တာက   
class khit:
    def one(self,name):
        self.name=name
method one က အေျဖထုတ္တာမဟုတ္ပါ။ သူအလုပ္လုပ္ဖို႔အတြက္ user က တစ္ခုခု ရိုက္ထည့္ရမယ့္ ပံုစံနဲ႔ ေရးထားတာျဖစ္ပါတယ္။
    def two(self):
        return self.name
method two ကေတာ့ one မွာ ေရးထည့္ခဲ့တဲ့ အေျဖကို ျပန္ယူသံုးမယ္ဆိုျပီး ေရးထားျခင္းျဖစ္ပါတယ္။
    def three(self):
        return "Hello %s" % self.name
method three self.name ကိုပဲ Hello ဆိုတဲ့ စာသားနဲ႔ ျပန္ေပါင္းျပီး အေျဖထုတ္မွာပါ။ 
%s ကေတာ့  variable တစ္ခုခုရဲ႕ အေျဖကို ထုတ္ေပးေတာ့မယ္လို႔ ဆိုလိုပါတယ္။ % self.name ဆိုတာကေတာ့ self.name ကိုပဲ 
အေျဖထုတ္မယ္ဆိုတာ ျပတာပါ။ % ကို self.name ရဲ႕ ေရွ႕မွာ ထပ္ထည့္ေပးတာကေတာ့ %s ဆိုျပီး ျပခဲ့တာ ဒီအရာမွန္း စက္က သိေအာင္
ေဖာ္ျပျခင္း ျဖစ္ပါတယ္။
ခုေန RUN ၾကည့္ရင္ ဘာမွ အေျဖထြက္လာမွာမဟုတ္ေသးပါဘူး။
ေနာက္ျပီး ဒီေနရာမွာ ကြ်န္ေတာ္ တည္ေဆာက္ျပခဲ့တဲ့ method ၃ခုမွာ method 1 က အဓိကပါ။ သူ႔ဆီက အေျဖကိုပဲ က်န္တဲ့၂ခုမွာ ယူသံုးမွာဆိုတာ ရွင္းျပထားျပီးသားေနာ္။
သူတို႔ေတြ အလုပ္လုပ္ႏိုင္ဖို႔အတြက္ object ကေလးေတြ ဖန္တီးလိုက္ရေအာင္။
..
answer = khit()
answer.one("John")
print answer.two()
print answer.three()
အထက္ပါ Obj ေလးမ်ားကို ခုနဖိုင္ရဲ႕ ေအာက္ဆံုးမွာ ထပ္ထည့္လိုက္ရေအာင္။
အဲသည္မွာ one ကို ကြ်န္ေတာ္က John လို႔ ေဒတာထည့္လိုက္ပါျပီ။ အဓိကေဒတာ ထည့္သြင္းျပီးျဖစ္လို႔ method 2 နဲ႔ 3 တို႔ အလုပ္လုပ္ႏိုင္သြားပါျပီ။
မွတ္ထားဖို႔ လုိအပ္တာက class တစ္ခုခု ဖန္တီးျပီးသြားတာနဲ႔ အဲသည္ class အတြက္ method နဲ႔ Object ေတြကို အေရအတြက္ႀကိဳက္သေလာက္ ထပ္ျဖည့္ထည့္သံုးႏိုင္တယ္ဆိုတာပါပဲ။
ခုန ေအာက္မွာ ဒါေလးေတြ ထပ္ျဖည့္ၾကည့္ပါဦး။
answer2 = khit()
answer2.one("December")
print answer2.two()
print answer2.three()
ျပီးရင္ Run ၾကည့္လိုက္တဲ့အခါ ေနာက္ထပ္ အေျဖေတြ ထပ္ထုတ္ေပးတာ ေတြ႕ရပါမယ္။
ဒီနည္းနဲ႔ answer ေတြ အမ်ားႀကီး ဆက္ထုတ္လို႔ ရသြားပါျပီ။
ခုဆိုရင္ ကြ်န္ေတာ္တို႔ ရိုက္ထားတဲ့ဖိုင္က ေအာက္ပါအတိုင္း ျဖစ္ေနပါျပီ။
class khit:
    def one(self,name):
        self.name=name
    def two(self):
        return self.name
    def three(self):
        return "Hello %s" % self.name

answer = khit()
answer.one("John")
print answer.two()
print answer.three()

answer2 = khit()
answer2.one("December")
print answer2.two()
print answer2.three()
ဒီေနရာမွာ answer ေတြက ကြ်န္ေတာ္ေရးခ်င္ရာ ေရးလိုက္တာပါ။ a , b, c ထားလည္း ရပါတယ္။ ဒါဆို ဖိုင္ကို ေနာက္တစ္နည္း ထပ္ေရးျပပါဦးမယ္။ ၾကည့္ၾကည့္ပါဗ်။
class khit:
    def one(self,name):
        self.name=name
    def two(self):
        return self.name
    def three(self):
        return "Hello %s" % self.name
ဒီအထိပဲ ခ်န္ျပီး က်န္တာေတြ ဖ်က္ပစ္လိုက္ပါ။ ျပီးရင္ ေအာက္ကေန ဒါေတြကို ဆက္ရိုက္ၾကည့္ရေအာင္။
a=khit()
b=khit()
c=khit()
d=khit()
a.one("Aung")
b.one("Zaw")
c.one("December")
d.one("Sweety")
print a.two()
print a.three()
print b.two()
print b.three()
print c.two()
print c.three()
print d.two()
print d.three()
ျပီးရင္ RUN ၾကည့္လိုက္ပါ။ ကြ်န္ေတာ္တို႔ ျဖည့္သြင္းခဲ့တဲ့ data ေတြအလိုက္ print ထုတ္ခိုင္းတာေတြကို ထုတ္ျပေပးသြားတာ ျမင္ရပါမယ္။
ကဲ lessson 2 ကို ရပ္လိုက္ၾကဦးစို႔။
lessson 3 ဆက္ၾကည့္ပါ။
    
........................................................................................................................


Lesson 3
.
Python Programming
ဒီတစ္ခါေတာ့ ကြ်န္ေတာ္တို႔ Super Class and Sub Class ကို ဆက္လက္ ေလ့လာရေအာင္ပါ။
class ၂မ်ိဳးခြဲျပီးေလ့လာတာေပါ့။ 
Superclass = Parentclass
Subclass = Childclass လို႔ မွတ္ထားႏိုင္ပါတယ္။
Superclass = Parentclass ျဖစ္တဲ့အတြက္ သူက main ေပါ့။
Subclass = Childclass ျဖစ္တာေၾကာင့္ superclass ထဲက ကုဒ္လိုင္းေတြကို ျပန္ျပီး ေမြးစားသံုးလို႔ရတာမ်ိဳးကို ဆိုလိုပါတယ္။
ထံုးစံအတိုင္းပဲ idle ဖြင့္ထားတာေတြကို ပိတ္လိုက္ပါ။ လံုးဝ အသစ္ ျပန္စမွာျဖစ္လို႔ပါပဲ။
.....
ဒီခါေတာ့ file new မေခၚေသးဘူးဗ််ာ။ idle ဖြင့္ျပီး ပြင့္လာတဲ့ဖိုင္ထဲမွာပဲ တိုက္ရိုက္ ရုိက္ထည့္ရေအာင္။
>>> class supclass:
one="I am 1"
two="I am 2"

>>> အထက္ပါအတိုင္း superclass ကို ဖြဲ႕လိုက္ပါတယ္။ variable ၂ခု ထည့္သြင္းလိုက္ပါတယ္။ ေနာက္တစ္လိုင္းကူးႏိုင္ဖို႔ enter ၂ခ်က္ဆင္းရပါမယ္။ သတိထားေစခ်င္တာေလးက class ေနာက္က supclass ဆိုတာ superclass ျဖစ္ေၾကာင္း မွတ္မိေစခ်င္လို႔ ေရးထားတာေနာ္။ ကိုယ္ႀကိဳက္ရာေရးမွတ္ႏိုင္တယ္။ အျပာေရာင္နဲ႔ေပၚတဲ့စာလံုးေတြ ကိုယ့္ဘာသာ သတ္မွတ္ႏိုင္တယ္ဆိုတာ ေျပာခဲ့ျပီးသား။ one two လည္း အဲအတိုင္းပဲ။ variable သတ္မွတ္ခဲ့တုန္းကလိုပဲ ကိုယ္ႏွစ္သက္ရာ variable သတ္မွတ္လို႔ ရတယ္။ ခုက နမူနာပဲ ျပတာ။
ဒုတိယလိုင္းေရာက္ျပီဆိုရင္ subclass ထည့္ရေအာင္။
>>> class subclass(supclass):
pass
ဒုတိယထည့္သြင္းတဲ့ subclass ကို pass နဲ႔ ေက်ာ္လိုက္ပါတယ္။ 
ေနာက္တစ္ခု ထပ္ထည့္ရေအာင္။ 
>>> asdf=supclass
>>> asdf.one
'I am 1' လို႔ ထုတ္ေပးတာ ေတြ႕ရပါျပီ။
>>> asdf.two
'I am 2'
တစ္ေၾကာင္းခ်င္းစီကို အေျဖထုတ္ေပးတာေတြ႔ရပါျပီ။ 
ဒီခါ subclass ကို ဆက္တြဲရေအာင္.
>>> ghjk=subclass
>>> ghjk.one
'I am 1'
>>> ghjk.two
'I am 2'
ေတြ႔ရပါျပီ။ one two function ေတြမွာ အေျဖတူေနတာေတြ႕ရမယ္။ အေၾကာင္းက subclass သတ္မွတ္ခဲ့စဥ္က pass လုပ္ျပီး ေက်ာ္ခဲ့တာမို႔ မူလ parent class ျဖစ္တဲ့ supclass ဆီကေန ယူသံုးလုိက္ျခင္း ျဖစ္ပါတယ္။ 
နားလည္ေလာက္မယ္ထင္တယ္ခင္ဗ်။ ပိုရွင္းသြားေအာင္ ေနာက္တစ္ပုဒ္နဲ႔ ထပ္ေလ့လာရေအာင္။
idle ကို ပိတ္ျပီး ျပန္ဖြင့္လိုက္ပါ။ အသစ္ပဲ စ ရေအာင္ပါ။
ဒီခါေတာ့ supclass ကို kmn လို႔ သတ္မွတ္ျပီး subclass ကို kkk ပံုစံနဲ႔ သြားပါမယ္။
idle ကိုဖြင့္။ file >> New ယူျပီး ေအာက္ပါကုဒ္ေတြ ေရးပါ။
...
class kmn:
    x="I am x."
    y="I am y."

class kkk(kmn):
    pass

aa=kmn()
print aa.x
print aa.y

bb=kkk()
print bb.x
print bb.y
...
ျပီးရင္ Desktop ေပၚမွာ ႀကိဳက္ရာနာမည္နဲ႔ Save ပါ။ RUN ၾကည့္ပါဦး။
Lesson 3 ကို ဒီေနရာမွာပဲ ရပ္ပါရေစ
Lesson 4 လာပါမယ္။
..................................................................................................................

Lesson 4
.
Python Programming
.
ထံုးစံအတိုင္း idle ဖြင့္ထားတာေတြ အကုန္ပိတ္။ အသစ္ျပန္ဖြင့္ျပီး new ေခၚ ေရးရေအာင္။
ေအာက္ပါ ကုဒ္လိုင္းေလးေတြကို ရိုက္ထည့္ၾကည့္ပါ။
..
lesson 3  မွ ပံုစံတူမ်ား
class kmn:
    var1="I'm number one.."
    var2="I'm two two two...."

class khit(kmn):
    pass

obj1= kmn()
obj2= khit()

print obj1.var1
print obj1.var2

print khit.var1
print obj2.var2
းးးးးးးးးးးးးးးးးးးးးးးးးးးးးးးးးးးး
းးးးးးးးးးးးးး
obj =object ကို ဆိုလိုသည္။ ႏွစ္သက္ရာ သတ္မွတ္ႏိုင္သည္။
var = variable ကို ဆိုလိုသည္။ ႏွစ္သက္ရာ သတ္မွတ္ႏိုင္ပါသည္။
.....
class kmn:
    var1="I'm number one.."
    var2="I'm two two two...."

class khit(kmn):
    var3="Ohhhhh! wow!!!!"

obj1= kmn()
obj2= khit()

print obj1.var1
print obj1.var2

print khit.var1
print obj2.var2

print khit.var3
print obj2.var3
................
................
ျပင္ထားတာေတြ ျမင္ေအာင္ ၾကည့္ပါ။
ကြာျခားမႈကို သတိထားပါ။
.........
..............
................................................................
ဒီေလာက္ေလးနဲ႔ပဲ ကြ်န္ေတာ့္ရဲ႕ Python2 Programming Free Lesson ေလးမ်ားကို ရပ္နားပါရေစခင္ဗ်ာ
အေတာ္မ်ားမ်ားကို နားလည္သေဘာေပါက္မယ္လို႔ ယူဆပါတယ္
ေနာက္ရက္ေတြမွာေတာ့ Python Programming တင္ေပးျဖစ္ရင္ေတာင္ Python 3 ဘက္ကို ျပန္လွည့္ဖုိ႔ စိတ္ကူးထားတာမို႔ပါ
...................................................................................

0 comments:

Post a Comment