tutorial - python programming pdf



"Foo is none" এবং "foo== none" এর মধ্যে কোন পার্থক্য আছে? (8)

এর মধ্যে কোন পার্থক্য আছে:

if foo is None: pass

এবং

if foo == None: pass

অধিকাংশ পাইথন কোড (এবং যে কোডটি আমি নিজেই লিখি) তে দেখেছি সেটি হল প্রাক্তন, তবে সম্প্রতি আমি কোডটি জুড়ে আসি যা পরবর্তীটি ব্যবহার করে। কেউই কোনও উদাহরণ নয় (এবং একমাত্র উদাহরণ, আইআইআরসি) NoneNype এর, তাই এটি কোন ব্যাপার না, তাই না? এটা কি কোন পরিস্থিতিতে আছে?

https://ffff65535.com


@ Jason :

আমি লাইন বরাবর আরো কিছু ব্যবহার করার সুপারিশ

if foo:
    #foo isn't None
else:
    #foo is None

আমি "if foo:" ব্যবহার করতে পছন্দ করি না যদি না Foo সত্যিই একটি বুলিয়ান মান উপস্থাপন করে (অর্থাৎ 0 বা 1)। যদি foo একটি স্ট্রিং বা কোনও বস্তু বা অন্য কিছু, "যদি foo:" কাজ করতে পারে তবে এটি আমার কাছে অলস শর্টকাট। যদি আপনি কোনটি x না হয় তা দেখতে চেক করছেন তবে "x যদি কেউ না হয় তবে বলুন"।


আপনি এই বস্তুর পরিচয় এবং সমতা পড়তে চাইতে পারেন।

বিবৃতি 'is' বস্তুর পরিচয়ের জন্য ব্যবহৃত হয়, বস্তুগুলি একই দৃষ্টান্ত (স্মৃতিতে একই ঠিকানা) উল্লেখ করে তা পরীক্ষা করে।

এবং '==' বিবৃতি সমতা (একই মান) বোঝায়।


এটি একই বস্তুর দৃষ্টান্ত তুলনা করে যদি সর্বদা True

যেখানে == শেষ পর্যন্ত __eq__() পদ্ধতি দ্বারা নির্ধারিত হয়

অর্থাত


>>> class Foo(object):
       def __eq__(self, other):
           return True

>>> f = Foo()
>>> f == None
True
>>> f is None
False

কারণ foo is None পছন্দসই উপায় নয় যে আপনি এমন বস্তু পরিচালনা করছেন যা নিজের __eq__ সংজ্ঞায়িত করে এবং __eq__ বস্তুটিকে সমান হিসাবে নির্ধারণ করে। সুতরাং, সর্বদা foo is None ব্যবহার করা foo is None যদি এটি দেখতে হয় তবে এটি আসলেই None


কোন পার্থক্য নেই কারণ সমান যা বস্তু সমান হবে। যাইহোক, পিইপি 8 স্পষ্টভাবে আপনাকে বলে যে এটি ব্যবহার is উচিত:

একের মত সিলেটের তুলনা সবসময়ই করা উচিত নয়, না সমতা অপারেটরদের সাথে।


জন Machin এর উপসংহার যে None একটি সিঙ্গলটন হয় এই কোড দ্বারা bolstered একটি উপসংহার।

>>> x = None
>>> y = None
>>> x == y
True
>>> x is y
True
>>> 

যেহেতু None একটি সিঙ্গল্টন নয়, x == None এবং x is None একই ফলাফল পাবে না। যাইহোক, আমার নান্দনিক মতামত, x == None ভাল হয় না।


সতর্কতা একটি শব্দ:

if foo:
  # do something

ঠিক একই হিসাবে হয় না:

if x is not None:
  # do something

পূর্ব একটি বুলিয়ান মান পরীক্ষা এবং বিভিন্ন প্রেক্ষাপটে মিথ্যা মূল্যায়ন করতে পারেন। বুলিয়ান মান পরীক্ষাগুলিতে মিথ্যা প্রতিনিধিত্বকারী অনেকগুলি জিনিস রয়েছে যেমন খালি পাত্রে, বুলিয়ান মান। কেউ এই পরিস্থিতিতে মিথ্যা মিথ্যা মূল্যায়ন কিন্তু অন্যান্য জিনিস খুব না।


(ob1 is ob2) সমান (id(ob1) == id(ob2))





python