আমি কেবল নিম্নলিখিত "ন্যূনতম" রেপ্রেস কেসটি একসাথে রেখেছি (ন্যূনতমতম উদ্ধৃতিতে কারণ আমি নিশ্চিত করতে চেয়েছিলাম যে pylintঅন্য কোনও ত্রুটি, সতর্কতা, ইঙ্গিত বা পরামর্শগুলি নিক্ষেপ করা হয়নি - যার অর্থ কিছুটা বয়লারপ্লেট রয়েছে):
pylint_error.py :
"""
Docstring
"""
import numpy as np
def main():
"""
Main entrypoint
"""
test = np.array([1])
print(test.shape[0])
if __name__ == "__main__":
main()
যখন আমি pylintএই কোডটি চালিত করি ( pylint pylint_error.py) আমি নিম্নলিখিত আউটপুটটি পাই:
$> pylint pylint_error.py
************* Module pylint_error
pylint_error.py:13:10: E1136: Value 'test.shape' is unsubscriptable (unsubscriptable-object)
------------------------------------------------------------------
Your code has been rated at 1.67/10 (previous run: 1.67/10, +0.00)
এটি দাবি করে যে test.shapeএটি সাবস্ক্রিপ্টযোগ্য নয়, যদিও এটি বেশ পরিষ্কারভাবে রয়েছে। আমি কোডটি চালানোর সময় এটি ঠিক কাজ করে:
$> python pylint_error.py
1
তাহলে কি pylintবিভ্রান্ত হওয়ার কারণ হচ্ছে এবং আমি কীভাবে এটি ঠিক করতে পারি?
কিছু অতিরিক্ত নোট:
- যদি আমি পরীক্ষাটি ঘোষণা করি তেমনি
np.arange(1)ত্রুটিটি চলে যায় - আমি পরীক্ষা ডিক্লেয়ার তাহলে
np.zeros(1),np.zeros((1)),np.ones(1), অথবাnp.ones((1))ত্রুটি নেই না দূরে যেতে - যদি আমি পরীক্ষাটি ঘোষণা করি তেমনি
np.full((1), 1)ত্রুটিটি চলে যায় - (
test: np.ndarray = np.array([1])) টাইপ নির্দিষ্টকরণ ত্রুটি ঠিক করে না - একটি
dtype(np.array([1], dtype=np.uint8)) উল্লেখ করা ত্রুটিটি ঠিক করে না - পরীক্ষার এক টুকরো (
test[:].shape) খেলে ত্রুটি চলে যায় go
আমার প্রথম প্রবৃত্তিটি বলে যে বিভিন্ন NumPYপদ্ধতির ( arangeবনাম zerosবনাম full, ইত্যাদির) সাথে অসঙ্গতিপূর্ণ আচরণ বোঝায় যে এটি কেবল একটি বাগ রয়েছে NumPY। তবে এটির কিছু অন্তর্নিহিত ধারণা থাকতে পারে NumPYযে আমি ভুল বোঝাবুঝি করছি। আমি নিশ্চিত হতে চাই যে আমি অপরিজ্ঞাত আচরণের সাথে কোডটি লিখছি না যা কেবলমাত্র দুর্ঘটনায় কাজ করে।
pylintসামনেnumpy