পাইথনের কেন sign
ফাংশন নেই তা আমি বুঝতে পারি না । এটির একটি abs
বিল্টিন রয়েছে (যা আমি sign
বোন হিসাবে বিবেচনা করি ) তবে তা নেই sign
।
অজগর ২.6 এ এমনকি একটি copysign
ফাংশন ( গণিতে ) রয়েছে, তবে কোনও চিহ্ন নেই। কেন copysign(x,y)
আপনি যখন কেবল একটি লিখতে sign
পারেন এবং copysign
সরাসরি সরাসরি থেকে তা লিখতে কেন বিরক্ত হন abs(x) * sign(y)
? পরবর্তীটি আরও স্পষ্ট হবে: এক্স এর সাথে y এর চিহ্ন সহ, অন্যদিকে কপিসাইন দিয়ে আপনাকে মনে রাখতে হবে এটি x এর সাথে y বা y এর চিহ্ন সহ x!
স্পষ্টতই এর sign(x)
চেয়ে বেশি কিছু সরবরাহ করা হয় না cmp(x,0)
তবে এটি আরও বেশি পঠনযোগ্য হবে যে এটিও (এবং পাইথনের মতো বহুল পঠনযোগ্য ভাষার জন্য এটি একটি বৃহত্তর প্লাস হত)।
আমি যদি পাইথন ডিজাইনার হয়ে থাকতাম তবে আমি অন্য উপায়ে cmp
অর্ডিন হয়ে থাকতাম: বিল্টিন না, তবে একটি sign
। আপনার যখন প্রয়োজন হবে cmp(x,y)
, আপনি কেবল একটি sign(x-y)
(বা, সংখ্যাগত স্টাফের জন্য আরও ভাল, কেবলমাত্র একটি এক্স> ওয়াই) করতে পারতেন - অবশ্যই এটি sorted
একটি পূর্ণসংখ্যার তুলকের পরিবর্তে বুলিয়ান গ্রহণ করা উচিত ছিল )। এটাও আরো স্পষ্ট হবে: ইতিবাচক যখন x>y
(যেহেতু সঙ্গে cmp
আপনি কনভেনশন ইতিবাচক মনে রাখা যখন আছে প্রথম হল বড় , কিন্তু এটা অন্য উপায় কাছাকাছি হতে পারে)। অবশ্যই cmp
অন্যান্য কারণে এর নিজস্ব ধারণাটি তৈরি করে (উদাহরণস্বরূপ যখন অ-সংখ্যাসূচক জিনিসগুলি বাছাই করার সময়, বা যদি আপনি সাজ্টটি স্থিতিশীল হতে চান যা কেবল বুলিয়ান দিয়ে ব্যবহার করা সম্ভব নয়)
সুতরাং, প্রশ্নটি হল: পাইথন ডিজাইনার (গুলি) কেন sign
ভাষাটির বাইরে ফাংশনটি ছেড়ে যাওয়ার সিদ্ধান্ত নিয়েছিলেন ? কেন হেক copysign
তার পিতামাতার সাথে বিরক্ত হয় না sign
?
আমি কিছু অনুপস্থিত করছি?
সম্পাদনা - পিটার হ্যানসেন মন্তব্য করার পরে। যথেষ্ট পরিমাণে আপনি এটি ব্যবহার করেন নি তবে আপনি অজগরটি কী ব্যবহার করেন তা আপনি বলেননি। 7 বছরে আমি অজগর ব্যবহার করি, আমার এটি অসংখ্যবার প্রয়োজন হয়েছিল, এবং শেষটিটি খড়টি যা উটের পিঠে ভেঙে দেয়!
হ্যাঁ, আপনি চারপাশে সিএমপি পাস করতে পারেন, তবে আমার যে সময়টি পাস করার প্রয়োজন ছিল তার 90% সময়টি ছিল ঠিক lambda x,y: cmp(score(x),score(y))
এমন একটি প্রতিমা হিসাবে ছিল
যে সাইন দিয়ে ঠিক কাজ করেছিল।
পরিশেষে, আমি আশা করি আপনি সম্মত হন যে এর sign
চেয়েও বেশি কার্যকর হবে copysign
, তাই আমি যদি আপনার দৃষ্টিভঙ্গি কিনেছি, কেন সাইন এর পরিবর্তে গণিতে এটি সংজ্ঞায়িত করার বিষয়ে কেন বিরক্ত করবেন? কীভাবে স্বাক্ষরের চেয়ে অনুলিপি ব্যবহার করা যায়?