পাইথনের কেন 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, তাই আমি যদি আপনার দৃষ্টিভঙ্গি কিনেছি, কেন সাইন এর পরিবর্তে গণিতে এটি সংজ্ঞায়িত করার বিষয়ে কেন বিরক্ত করবেন? কীভাবে স্বাক্ষরের চেয়ে অনুলিপি ব্যবহার করা যায়?