@ জোলভি, @ অরুন্দাসআর এবং অন্যদের সাথে সম্মত, সতর্কতাটি কোনও সদস্য ফাংশনে ঘটে যা ব্যবহার করে না self
।
যদি আপনি নিশ্চিত হন যে পাইচার্মটি ভুল, তবে ফাংশনটি একটি হওয়া উচিত নয় @staticmethod
এবং আপনি যদি শূন্য সতর্কতার মূল্যকে মূল্য দেন, আপনি এটিকে দুটি ভিন্ন উপায়ে যেতে পারেন:
কার্যবিধি # 1
def bar(self):
self.is_not_used()
doing_something_without_self()
def is_not_used(self):
pass
কার্য # 2 [ধন্যবাদ @ ডেভিডপারসন ]
# noinspection PyMethodMayBeStatic
def bar(self):
doing_something_without_self()
এর জন্য আমার যে অ্যাপ্লিকেশনটি ছিল (যে কারণে আমি @staticmethod ব্যবহার করতে পারিনি) প্রোটোকল সাব টাইপের ক্ষেত্রে সাড়া দেওয়ার জন্য হ্যান্ডলার ফাংশনগুলির একটি সারণী তৈরি করছিল। সমস্ত হ্যান্ডলারের একই ধরণের কোর্স (স্থির বা ননস্ট্যাটিক) হতে হয়েছিল। কিন্তু কিছু উদাহরণ দিয়ে কিছু করতে ঘটেনি। যদি আমি এই স্ট্যাটিকগুলি তৈরি করে থাকি তবে আমি "টাইপএরর: 'স্ট্যাটিকমেথোথড' অবজেক্টটি কলযোগ্য নয়" get
ওপি এর আতঙ্কিত হয়ে পড়েছিলেন সমর্থনে ইন, পরামর্শ আপনি, staticmethod যখনই আপনি করতে পারেন যোগ পরিপন্থী নীতি তৈরীর একটি পদ্ধতি স্ট্যাটিক এখন এটি কম নিয়ন্ত্রণমূলক করে তোলে, আপনি পারে - এটি সহজ কোড কম পরে নিয়ন্ত্রণমূলক করতে, এটি আরো করতে চেয়ে উদাহরণ.f () এর পরিবর্তে class.f () কল করুন।
এই সতর্কতাটি কেন বিদ্যমান তা অনুমান করে:
- এটি স্ট্যাটিকমেডোর বিজ্ঞাপন দেয় । এটি বিকাশকারীদের এমন কিছু সম্পর্কে সচেতন করে যা তারা ভালভাবে উদ্দেশ্য করতে পারে।
- @ জন ওয়ার্লোরের বক্তব্য হিসাবে, নিজের অজান্তে ফাংশনটি থেকে সরে যাওয়ার পরে এটি আপনার দৃষ্টি আকর্ষণ করবে।
- এটি বস্তুর মডেলটি পুনর্বিবেচনা করার একটি সূত্র; হয়তো ফাংশনটি এই শ্রেণীর অন্তর্ভুক্ত নয়।
self
পদ্ধতির ভিতরে কোথাও রেফারেন্স ? (যদি প্রশ্নটি সত্যিই হয় "পাইকার্মের ডিজাইনাররা কেন এটি এভাবে ডিজাইন করেছিলেন ... আপনাকে তাদের জিজ্ঞাসা করতে হবে, তাই না ...)