for i in ...:
for j in ...:
for k in ...:
if something:
# continue loop i
সাধারণ ক্ষেত্রে, যখন আপনার একাধিক স্তরের লুপিং থাকে এবং আপনার break
পক্ষে কাজ করে না (কারণ আপনি উপরের লুপগুলির একটি বর্তমানের উপরের একটির উপরে না চালিয়ে যেতে চান), আপনি নিম্নলিখিতগুলির একটি করতে পারেন
আপনি যে ফাংশন থেকে পালাতে চান সেই লুপগুলি রিফ্যাক্টর
def inner():
for j in ...:
for k in ...:
if something:
return
for i in ...:
inner()
অসুবিধাটি হ'ল আপনাকে সেই নতুন ফাংশনে কিছু ভেরিয়েবলগুলি পাস করতে হতে পারে, যা পূর্বে সুযোগ ছিল in আপনি কেবল সেগুলি প্যারামিটার হিসাবে পাস করতে পারেন, কোনও বস্তুর উপর তাদের উদাহরণ পরিবর্তনশীল করতে পারেন (কেবলমাত্র এই ফাংশনটির জন্য একটি নতুন অবজেক্ট তৈরি করুন, যদি এটি বোধ হয়), বা গ্লোবাল ভেরিয়েবল, সিঙ্গেলটন, যাই হোক না কেন (এএইচএম, এহম)।
অথবা আপনি inner
নেস্টেড ফাংশন হিসাবে সংজ্ঞায়িত করতে পারেন এবং এটি কেবল যা প্রয়োজন তা ক্যাপচার করতে দিন (ধীর হতে পারে?)
for i in ...:
def inner():
for j in ...:
for k in ...:
if something:
return
inner()
ব্যতিক্রম ব্যবহার করুন
দার্শনিকভাবে, ব্যতিক্রমগুলির জন্য এটিই রয়েছে, যখন প্রয়োজন হয় কাঠামোগত প্রোগ্রামিং বিল্ডিং ব্লকগুলির (যদি, যখন, তবে) প্রোগ্রামের প্রবাহকে ভঙ্গ করে।
সুবিধাটি হ'ল আপনাকে একক কোডের একাধিক অংশে ভাঙতে হবে না। পাইথনে লেখার সময় যদি এটি কোনও ধরণের গণনা ডিজাইন করেন তবে এটি ভাল। এই প্রাথমিক পর্যায়ে অ্যাবস্ট্রাকশনগুলির পরিচয় করিয়ে দেওয়া আপনাকে ধীর করতে পারে you
এই পদ্ধতির সাথে খারাপ জিনিস হ'ল দোভাষী / সংকলক লেখকরা সাধারণত ধরে নেন যে ব্যতিক্রমগুলি ব্যতিক্রমী এবং সে অনুযায়ী তাদের জন্য অনুকূলিত।
class ContinueI(Exception):
pass
continue_i = ContinueI()
for i in ...:
try:
for j in ...:
for k in ...:
if something:
raise continue_i
except ContinueI:
continue
এর জন্য একটি বিশেষ ব্যতিক্রম শ্রেণি তৈরি করুন, যাতে আপনি দুর্ঘটনাক্রমে অন্য কিছু ব্যতিক্রম স্থগিত করার ঝুঁকি না ফেলে।
পুরোপুরি অন্য কিছু
আমি নিশ্চিত যে এখনও অন্য সমাধান আছে।