যার নাম পিডিবি কমান্ডের সাথে সাংঘর্ষিক হয় আমি কীভাবে এমন কোনও পরিবর্তনশীলকে ম্যানিপুলেট করব?


95

আমার কোডটি আরও ভাল বা খারাপ, একক বর্ণের ভেরিয়েবলগুলির সাথে ছড়িয়ে পড়েছে (এটি পদার্থবিজ্ঞানের জিনিস, তাই সেই অক্ষরগুলি অর্থবহ হয়), পাশাপাশি নম্পপিও, যা আমি প্রায়শই ইন্টারেক্ট করছি।

পাইথন ডিবাগারটি ব্যবহার করার সময় মাঝে মাঝে আমি বলার মানটি দেখতে চাই n। যাইহোক, যখন আমি আঘাত করব n<enter>, এটি পিডিবি কমান্ড (n)ext, যার একটি উচ্চ অগ্রাধিকার রয়েছে। print nএটি দেখার জন্য প্রায় কাজ করে, তবে আমি কীভাবে এটি সেট করতে পারি?


4
ওভারকিলের মতো তবে আপনি কি চেষ্টা করেছেন eval? eval('n = 3')? হতে পারে এটি সাহায্য করে :)
পাওলো বু

উত্তর:


131

!বিবৃতিটি চালিত হওয়ার আগে একটি বিস্ময়বোধক চিহ্ন ব্যবহার করুন :

python -m pdb test.py
> /home/user/test.py(1)<module>()
-> print('foo')
(Pdb) !n = 77
(Pdb) !n
77
(Pdb) n
foo
> /home/user/test.py(2)<module>()
-> print('bar')
(Pdb)

ডক্স বলে,

! statement

বর্তমান স্ট্যাক ফ্রেমের প্রসঙ্গে (এক-লাইন) বিবৃতি কার্যকর করুন । বিবৃতিটির প্রথম শব্দটি একটি ডিবাগার কমান্ডের মতো না হলে শব্দটি বাদ দেওয়া যায়। [...]


4
আইএমও কমান্ডগুলির প্রয়োজনের জন্য এটি আরও বেশি ব্যবহারকারী-বান্ধব হত ! বা এরকম কিছু উপসর্গ।
ব্যবহারকারী 76284

13

আপনি সেমিকোলন ব্যবহার করতে পারেন, তাই এর সামনে আরও কিছু রাখুন:

ipdb> print n
2
ipdb> n
> 145 <some code here>
  146
  147

ipdb> 1; n=4
1
ipdb> print n
4

7
কার্যকরী কাজ, তবে আমি বিশ্বাস করি '!' অপারেটর এই ক্ষেত্রে মোকাবেলা করার উদ্দেশ্যে।
ডায়নোসর

2

যে আপনার প্রশ্নের সরাসরি উত্তর না, তবে এটি আপনাকে সাহায্য করতে পারেন: PuDB কোন নকশাটি দ্বারা পরিবর্তনশীল ম্যানিপুলেশন থেকে কমান্ড আলাদা পিডিবি জন্য কনসোল-ভিত্তিক চাক্ষুষ ইন্টারফেস।


বেশ মজার তো; আমার যখন শেখার সময় হবে তখন আমি এটিতে ছুরিকাঘাত করতে হবে
নিক টি 20

-1

এরিক আইডিই, উইং আইডিই এবং স্পাইডারের কয়েকটি মাত্র ভিজ্যুয়াল ডিবাগার উল্লেখ করার জন্য তারা কমান্ডগুলি থেকে মানগুলির প্রদর্শন পৃথক করে।


কনসোলের মাধ্যমে ডিবাগিংয়ের তুলনায় ভিজ্যুয়াল ডিবাগারগুলি সাধারণত খুব ধীর হয়, যা ডিবাগারটি শুরু করতে প্রায় সময় নেয় না।
কৌতুহল

4
@ করিয়াস এগুলি শুরু করতে ধীর হলেও সাধারণত সীমিত অভিজ্ঞতার জন্য প্রায়শই বেশি ব্যবহারযোগ্য।
স্টিভ বার্নস

বৈজ্ঞানিক কাজের জন্য আমি স্পাইডারের ডিবাগারটি কার্যকর বলে মনে করি। আমার মনে হয় না 10x10 ম্যাট্রিক্স ডিবাগ করা সিএলআই
শোনাকদে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.