self
পাইথনের শব্দের উদ্দেশ্য কী ? আমি বুঝতে পারি এটি ক্লাস থেকে তৈরি নির্দিষ্ট অবজেক্টকে বোঝায়, তবে কেন এটি স্পষ্টভাবে প্যারামিটার হিসাবে প্রতিটি ফাংশনে যুক্ত করা দরকার তা আমি দেখতে পাচ্ছি না। উদাহরণস্বরূপ, রুবিতে আমি এটি করতে পারি:
class myClass
def myFunc(name)
@name = name
end
end
যা আমি বুঝতে পারি, খুব সহজেই। তবে পাইথনে আমাকে অন্তর্ভুক্ত করা দরকার self
:
class myClass:
def myFunc(self, name):
self.name = name
কেউ কি এর মাধ্যমে আমার সাথে কথা বলতে পারেন? এটি আমার (স্বীকারোক্তরূপে সীমাবদ্ধ) অভিজ্ঞতার মধ্য দিয়ে এসেছিল এমন কিছু নয়।
@name
চেয়ে বেশি স্বজ্ঞাত কী করে self.name
? উত্তরোত্তর, আইএমও আরও স্বজ্ঞাত।
@foo
এবং self.foo
সমানভাবে স্পষ্ট যেমন কোনও অন্তর্নিহিত রেজোলিউশন হওয়ার দরকার নেই (যেমন সি ++ তে উদাহরণস্বরূপ সদস্যরা নাম স্পেস ব্যবহার না করে "স্পষ্টভাবে" অ্যাক্সেস করতে পারবেন)। পার্থক্যটি হ'ল রুবি একটি নতুন শব্দার্থক (@) প্রবর্তন করেছে, যদিও পাইথন তা দেয় না। কোনও নতুন শব্দার্থবিজ্ঞানের পরিমান ভারবোসিটির পরিমাণ এড়ানো বা না নিখুঁতভাবে বিষয়ভিত্তিক। যদিও এটি লক্ষ করা উচিত যে বেশিরভাগ আধুনিক ভাষাগুলি এখানে একটি ধারণা প্রবর্তন করতে পছন্দ করে (যেমন পিএইচপি'র $ এটি, জেএস এর এটি)।