IDE কোড সমাপ্তি

ভিএস কোড এবং পাইচার্মের মতো আইডিইগুলি পাইথন ভাষার জন্য অন্তর্নির্মিত কোড সমাপ্তি অফার করে।

google-ads-python লাইব্রেরি GoogleAdsClient ক্লাসে গেটার পদ্ধতি ব্যবহার করে রানটাইমে গতিশীলভাবে প্রোটোবফ বার্তা ক্লাস তৈরি করে, যা সোর্স কোডের স্ট্যাটিক বিশ্লেষণের উপর নির্ভরশীল IDE কোড সমাপ্তি বৈশিষ্ট্যগুলিকে বাধা দিতে পারে।

আপনি গেটার পদ্ধতি ব্যবহার না করে সরাসরি প্রোটোবাফ বার্তা ক্লাস আমদানি করে স্ট্যাটিক বিশ্লেষণের উপর নির্ভরশীল কোড সমাপ্তি সরঞ্জামগুলির সাথে সামঞ্জস্য উন্নত করতে পারেন।

  • গতিশীলভাবে আমদানি করা প্রোটোবাফ বার্তা ক্লাস ব্যবহার করা। এই পদ্ধতিটি সাধারণত কোড সমাপ্তির সরঞ্জামগুলির সাথে সামঞ্জস্যপূর্ণ নয়।

    from google.ads.googleads.client import GoogleAdsClient
    
    client = GoogleAdsClient.load_from_storage()
    
    # The Campaign class is imported dynamically, preventing the IDE from
    # reading the class definition.
    campaign = client.get_type("Campaign")
    
  • সরাসরি আমদানি করা প্রোটোবাফ বার্তা ক্লাস ব্যবহার করা। এই পদ্ধতিটি কোড সমাপ্তির সরঞ্জামগুলিকে কাজ করতে সক্ষম করে।

    from google.ads.googleads.v22.resources import Campaign
    
    # The Campaign class is imported directly, enabling the IDE to read the
    # class definition and make code completion suggestions.
    campaign = Campaign()
    

সরাসরি জেনারেটেড ক্লাস আমদানি করলে কোড সম্পূর্ণ করতে সাহায্য করলেও, এটি কিছু অসুবিধাও তৈরি করে:

  1. একটি নির্দিষ্ট ক্লাস কোন মডিউলে অবস্থিত তা সবসময় স্পষ্ট নয়, তাই সঠিক আমদানি পথ খুঁজে পাওয়া কঠিন হতে পারে।
  2. ক্লায়েন্ট লাইব্রেরির নতুন সংস্করণের সাথে জেনারেটেড ক্লাসের ডিরেক্টরি কাঠামো পরিবর্তন হতে পারে। আপনি যদি সরাসরি ক্লাস আমদানি করেন, তাহলে আপগ্রেড করার সময় আপনার কোডটি ভেঙে যেতে পারে, যেখানে গেটার পদ্ধতি ব্যবহার করে এমন কোড এই ধরণের পরিবর্তনের দ্বারা প্রভাবিত হবে না।
  3. get_service পদ্ধতি পরিষেবাগুলি ফেরত দেওয়ার আগে শুরু করে। আপনি যদি সরাসরি পরিষেবাগুলি আমদানি করেন, তাহলে অনুরোধ করার আগে আপনাকে ম্যানুয়ালি শুরু করতে হবে।