আমি কি আমার শ্রেণীর সদস্যদের এই জাতীয় ডিফল্ট মান দিতে পারি:
class Foo:
num = 1
বা এই মত?
class Foo:
def __init__(self):
self.num = 1
ইন এই প্রশ্নের আমি উভয় ক্ষেত্রেই আবিষ্কার করেন যে,
bar = Foo()
bar.num += 1
একটি ভাল সংজ্ঞায়িত অপারেশন।
আমি বুঝতে পারি যে প্রথম পদ্ধতিটি আমাকে ক্লাস ভেরিয়েবল দেবে যখন দ্বিতীয়টি তা করবে না। তবে, যদি আমার ক্লাস ভেরিয়েবলের প্রয়োজন না হয় তবে কেবলমাত্র আমার উদাহরণ ভেরিয়েবলের জন্য একটি ডিফল্ট মান সেট করা দরকার, উভয় পদ্ধতি কি সমানভাবে ভাল? নাকি তাদের একজনের চেয়ে অপরটির চেয়ে বেশি 'পাইথোনিক'?
একটি জিনিস আমি লক্ষ্য করেছি যে জাজানো টিউটোরিয়ালে তারা মডেলগুলি ঘোষণার জন্য দ্বিতীয় পদ্ধতিটি ব্যবহার করে। ব্যক্তিগতভাবে আমি মনে করি যে দ্বিতীয় পদ্ধতিটি আরও মার্জিত, তবে আমি 'স্ট্যান্ডার্ড' উপায়টি কী তা জানতে চাই।
self.attr = attr or []
মধ্যে লিখুন__init__
। এটি একই ফলাফল অর্জন করে (আমি মনে করি) এবং এখনও স্পষ্ট এবং পঠনযোগ্য।