আমি আগে ব্যবহার করি নি এমন একটি জ্যাঙ্গো অ্যাপ্লিকেশন সংহত করার সময়, আমি ক্লাসে ফাংশনগুলি সংজ্ঞায়িত করতে ব্যবহৃত দুটি ভিন্ন উপায় পেয়েছি। লেখক মনে হয় এগুলি উভয়ই খুব ইচ্ছাকৃতভাবে ব্যবহার করেছেন। প্রথমটি হ'ল আমি নিজে প্রচুর ব্যবহার করি:
class Dummy(object):
def some_function(self,*args,**kwargs):
do something here
self is the class instance
অন্যটি হ'ল আমি ব্যবহার করি না, কারণ এটি কখন ব্যবহার করব তা আমি বুঝতে পারি না এবং এর জন্য:
class Dummy(object):
@classmethod
def some_function(cls,*args,**kwargs):
do something here
cls refers to what?
পাইথন ডক্সে classmethod
সাজসজ্জারকে এই বাক্যটি দিয়ে ব্যাখ্যা করা হয়:
কোনও শ্রেণি পদ্ধতি যেমন প্রথম উদাহরণ হিসাবে উদাহরণটি গ্রহণ করে ঠিক তেমন প্রথম যুক্তি হিসাবে ক্লাস গ্রহণ করে receives
সুতরাং আমি অনুমান করি নিজেকে cls
বোঝায় Dummy
( class
উদাহরণটি নয়)। এটি কেন বিদ্যমান তা আমি ঠিক বুঝতে পারি না, কারণ আমি সবসময় এটি করতে পারি:
type(self).do_something_with_the_class
এটি কি কেবল স্বচ্ছতার স্বার্থে, বা আমি সবচেয়ে গুরুত্বপূর্ণ অংশটি মিস করেছি: ভুতুড়ে এবং আকর্ষণীয় জিনিসগুলি ছাড়া এটি করা যায় না?