textarea is empty

‎چند شكلي پايتون ـPython Polymorphism

Previous >    <Next  

‎كلمهPolymorphism به معني چند فرمي ويا چند شكلي است، در برنامه نويسي مواردي كه با يك نام ‎،وكاربرد چند وجهي مثلا در توابع، متدها وعملگرها دارند .بعبارتي آنها بايك نام در كلاسها ‎اشياء و غيره اجرا ميشوند.

‎تابع چند شكلي ـFunction Polymorphism

‎يك نمونه از توابع پايتون كه ميتواند روي اشياء مختلف استفاده شود تابع‎len()‎‎ است ‎اين تابع در رشته ها، تاپل ها، مجموعه ها و... استفاده ميشود.

‎رشته ـString

‎تابع‎len()‎‎ روي رشته ، تعداد كراكترهاي آنرا برگشت ميدهد .

‎مثال ـ دريافت طول رشته با‎len()‎

--(go to editor for change code and run)

‎تاپل ـTuple

‎تابع‎len()‎‎ روي تاپل ، تعداد آيتم هاي آنرا برگشت ميدهد.

‎مثال ـ دريافت طول تاپل با‎len()‎

--(go to editor for change code and run)

‎ديكشنري ـDictionary

‎تابع‎len()‎‎ روي ديكشنري ، تعداد آيتم هاي آنرا برگشت ميدهد.

‎مثال ـ دريافت طول ديكشنري با‎len()‎

--(go to editor for change code and run)

‎كلاس چند شكلي ـClass Polymorphism

‎چند شكلي ها اغلب در متدهاي كلاس مورد استفاده قرار ميگيرند، يعني يك متد براي كلاسهاي مختلف ‎استفاده ميشود.

‎بعنوان مثال اگر كلاسهاي‎car , Boat , Plan‎در نظر بگيريد، متد‎move()‎‎ ‎براي آنها ميتواند مورد استفاده قرار گيرد.

‎مثال ـ كلاس هاي مختلف با متد يكسان

--(go to editor for change code and run)

‎به حلقه در انتهاي مثال توجه نمائيد، آن چند شكلي متد‎move()‎‎ را نشان ميدهد. ‎متد براي حذف سه كلاس متفاوت استفاده شده است.

‎چند شكلي در ارث بري ـ‎Inheritance Class Polymorphism‎

‎در مورد كلاس هائي كه كلاس هاي فرزند با نام يكسان دارند چطور‎؟‎آيا ‎مي توانيم درآنجا از چند ريختي استفاده كنيم.

‎بله ، اگر از مثال بالا استفاده كنيم ويك كلاس والد بنام‎vehicle‎بسازيم و كلاس ‎هاي فرزند‎Plane , Car , Boat‎ را ازVehicle بسازيم ، كلاسهاي فرزند متدهاي ‎آنرا بارث مي برند، اما ميتوانند آنهارا هم لغو كنند.

‎مثال ـ ايجاد كلاسvehicle وايجاد سه كلاس فرزند‎Plane , car , Boat

--(go to editor for change code and run)

‎كلاس هاي فرزند ويژگي و متدهاي والد را بارث مي برند.

‎در مثال بالا كلاس‎Car‎ خالي است ، اما ‎brand , model , move()‎‎ ‎ها را از والد بارث مي برد.

‎اما دو كلاس‎Boat , Plane‎ همچنين‎brand , Model, move()‎‎ را ‎از‎Vehicle‎ بارث مي برند، هردو‎move()‎‎ ارثي را با معرفي ‎جانشين همنام لغو ميكند. ‎اما بدليل چند شكلي آن براي همه كلاس ها مي توانيم متد يكسان اجرا كنيم.


Previous >    <Next