প্রসঙ্গ থেকে তাত্ক্ষণিকভাবে প্রকাশ না হওয়া প্রতিটি নামবিহীন নম্বর হ'ল ম্যাজিক নম্বর। সংখ্যার সংজ্ঞা দেওয়া যেহেতু প্রসঙ্গ থেকে তাত্ক্ষণিকভাবে সুস্পষ্ট হয় তা সংজ্ঞায়িত করার জন্য এটি কিছুটা নির্বোধ।
জ্যাঙ্গোতে (পাইথন ওয়েব ফ্রেমওয়ার্ক), আমি কাঁচা সংখ্যার সাথে কিছু ডাটাবেস ক্ষেত্রের সংজ্ঞা দিতে পারি:
firstname = models.CharField(max_length=40)
middlename = models.CharField(max_length=40)
lastname = models.CharField(max_length=40)
যা বলার চেয়ে পরিষ্কার (এবং প্রস্তাবিত অনুশীলন )
MAX_LENGTH_NAME = 40
...
firstname = models.CharField(max_length=MAX_LENGTH_NAME)
middlename = models.CharField(max_length=MAX_LENGTH_NAME)
lastname = models.CharField(max_length=MAX_LENGTH_NAME)
যেহেতু আমার দৈর্ঘ্য পরিবর্তন করার প্রয়োজন নেই (এবং সর্বদা ক্ষেত্রের সাথে তুলনা করতে পারি max_length
)। প্রাথমিকভাবে অ্যাপ্লিকেশন মোতায়েন করার পরে যদি আমার ক্ষেত্রের দৈর্ঘ্য পরিবর্তন করতে হয় তবে আমার জ্যাঙ্গো কোডে ক্ষেত্রের প্রতি ঠিক এক জায়গায় এটি পরিবর্তন করতে হবে এবং তারপরে ডিবির স্কিমা পরিবর্তন করার জন্য মাইগ্রেশন লিখতে হবে। যদি কখনও আমাকে max_length
কোনও ধরণের অবজেক্টের একটি সংজ্ঞায়িত ক্ষেত্রের রেফারেন্সের প্রয়োজন হয় তবে আমি তা সরাসরি করতে পারি - যদি ক্ষেত্রগুলি কোনও Person
শ্রেণীর সংজ্ঞা দিচ্ছিল , আমি এটি পেতে ব্যবহার Person._meta.get_field('firstname').max_length
করতে পারিmax_length
ব্যবহৃত হচ্ছে (যা এক জায়গায় সংজ্ঞায়িত)। একই 40 টি একাধিক ক্ষেত্রের জন্য ব্যবহৃত হয়েছিল তা অপ্রাসঙ্গিক কারণ আমি এগুলি স্বাধীনভাবে পরিবর্তন করতে চাই। প্রথম নামটির দৈর্ঘ্য কখনই মিডলনাম বা লাস্টনামের দৈর্ঘ্যের উপর নির্ভর করে না; এগুলি পৃথক মান এবং স্বাধীনভাবে পরিবর্তন করতে পারে।
প্রায়শই অ্যারে সূচকগুলি নামবিহীন সংখ্যা ব্যবহার করতে পারে; যেমন আমার কাছে যদি সিএসভি ফাইলের ডেটা থাকে যা আমি পাইথন অভিধানে রাখতে চাই, অভিধানটিতে সারির প্রথম উপাদানটি দিয়ে key
আমি লিখব:
mydict = {}
for row in csv.reader(f):
mydict[row[0]] = row[1:]
অবশ্যই আমি নাম লিখতে পারি index_column = 0
এবং এরকম কিছু করতে পারি:
index_col = 0
mydict = {}
for row in csv.reader(f):
mydict[row[index_col]] = row[:index_col] + row[index_col+1:]
বা আরও খারাপ দিক after_index_col = index_col + 1
থেকে পরিত্রাণ পেতে সংজ্ঞায়িত করা হয় index_col+1
, তবে এটি কোডটি আমার দৃষ্টিতে আরও পরিষ্কার করে না। এছাড়াও, আমি যদি index_col
নামটি দিয়ে থাকি তবে কলামটি 0 না (যদিও row[:index_col] +
অংশটি নয়) কোডের কোডটি আরও ভালভাবে তৈরি করব ।