পাইথনে, আমি প্রায়শই শুনি যে "অনুমতি চাইতে" (টাইপ / শর্ত পরীক্ষা করা) পরিবর্তে "ক্ষমা প্রার্থনা" (ব্যতিক্রম ধরা) ভাল। পাইথনে হাঁসের টাইপিং প্রয়োগের ক্ষেত্রে, এটিই
try:
x = foo.bar
except AttributeError:
pass
else:
do(x)
চেয়ে ভাল বা খারাপ
if hasattr(foo, "bar"):
do(foo.bar)
else:
pass
কর্মক্ষমতা, পাঠযোগ্যতা, "পাইথোনিক", বা অন্য কোনও গুরুত্বপূর্ণ বিষয়গুলির ক্ষেত্রে?
hasattr
যা অভ্যন্তরীণভাবে সঠিক চেষ্টা / ধরার সাথে বাস্তবায়িত হয়। এটি সত্য কিনা তা নিশ্চিত নয় ... (এটি সম্পত্তিগুলির উপর অন্যরকম আচরণ করবে, তাই না? সম্ভবত আমি ভাবছি getattr
..)
hasattr
সি-এপিআই সমতুল্য getattr
( True
যদি সফল হয় তবে প্রত্যাবর্তন করুন False
) ব্যবহার করে তবে সি-তে ব্যতিক্রমগুলি পরিচালনা করা অনেক দ্রুত is