প্রকারের ত্রুটি: মডিউল .__ init __ () সর্বাধিক 2 টি আর্গুমেন্ট নেয় (3 প্রদত্ত)


147

আমি নামের একটি ফাইলে একটি ক্লাস সংজ্ঞায়িত করেছি Object.py। যখন আমি এই ক্লাস থেকে অন্য কোনও ফাইলে উত্তরাধিকারী হওয়ার চেষ্টা করব, কনস্ট্রাক্টরকে কল করা একটি ব্যতিক্রম ছোঁড়ে:

TypeError: module.__init__() takes at most 2 arguments (3 given)

এটি আমার কোড:

import Object

class Visitor(Object):
    pass

instance = Visitor()  # this line throws the exception

আমি কি ভুল করছি?


1
আপনি দয়া করে প্রদত্ত উত্তরটি নির্বাচন করতে পারেন? এটি সঠিক বলে প্রতীয়মান হয়েছে এবং এটি আপনার দ্বিধা হিসাবে অন্য প্রশ্নগুলি বন্ধ করার অনুমতি দেবে।
ম্যাড পদার্থবিদ

1
আরে @ ওয়াকামদর সদৃশ প্রশ্নের কার্যকারিতা বেশ কার্যকর। আমার উত্তর সঠিক না হওয়ার কারণ আছে কি?
শীনা

এই প্রশ্নের সদৃশ হিসাবে অন্য প্রশ্নের ডুপ-বন্ধ করার জন্য কোনও উত্তর গ্রহণ করার দরকার নেই।
ব্যবহারকারী 2357112 4:09

উত্তর:


237

আপনার ত্রুটি ঘটছে কারণ Objectএকটি মডিউল, কোনও শ্রেণি নয়। সুতরাং আপনার উত্তরাধিকার চতুর।

আপনার আমদানির বিবৃতি এতে পরিবর্তন করুন:

from Object import ClassName

এবং আপনার শ্রেণীর সংজ্ঞা:

class Visitor(ClassName):

অথবা

আপনার শ্রেণীর সংজ্ঞাটি এতে পরিবর্তন করুন:

class Visitor(Object.ClassName):
   etc

উইল কি একই কাজ করে, যদি কেউ ClassNameপুরোপুরি বাদ দেয় ? পছন্দ class Visitor()?
ভিএমএটিএম

1
@ ভিএমএটিএম: আপনি কেন চেষ্টা করে দেখুন না। পাইথনের দুর্দান্ত কোসে এর দোভাষী রয়েছে। দ্রুত পরীক্ষার জন্য দুর্দান্ত
শীনা

2
জিনিয়াস। বিশ্বের সবচেয়ে খারাপ ত্রুটি লাইন। ক্লাস নয়, আমি মডিউলটি ব্যবহার করছিলাম তা জানতে আমাকে 3 ঘন্টা সময় লেগেছে। # $% ^ $% & $% &
মিকি পার্লস্টাইন

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

6

@ মিকি পার্লস্টেইনের উত্তর এবং তার 3 ঘন্টা গোয়েন্দা কাজ করার পরেও এটি আমার নিজের জগাখিচুড়ে প্রয়োগ করতে আমার আরও কয়েক মিনিট সময় নেয়। যদি অন্য কেউ আমার মতো হয় এবং তার জন্য আরও একটু সাহায্যের প্রয়োজন হয় তবে আমার পরিস্থিতিতে যা চলছে তা এখানে here

  • প্রতিক্রিয়া একটি মডিউল হয়
  • প্রতিক্রিয়া প্রতিক্রিয়া মডিউল মধ্যে একটি বেস শ্রেণি
  • জিওজেসন রিসপনস রেসপন্স থেকে প্রাপ্ত নতুন শ্রেণি

প্রাথমিক জিওজেসন রিসপনস শ্রেণি:

from pyexample.responses import Response

class GeoJsonResponse(Response):

    def __init__(self, geo_json_data):

দেখতে ভাল. আপনি কোনও জিনিসটি ডিবাগ করার চেষ্টা না করা পর্যন্ত কোনও সমস্যা নেই, যা আপনি যখন এর মতো আপাতদৃষ্টিতে অস্পষ্ট ত্রুটি বার্তাগুলির একটি গুচ্ছ পান:

জিওজেসন রিসপনস আমদানি করুন .. x পাইক নমুনা \ প্রতিক্রিয়াগুলি \ জিওজেসন রিসপনস.পি: 12: (মডিউল) শ্রেণিতে জিওজেসন রিসপনস (প্রতিক্রিয়া):

E TypeError: মডিউল () সর্বোচ্চ 2 টি আর্গুমেন্ট নেয় (3 প্রদত্ত)

========================================================= ======================

___________________ ত্রুটি সংগ্রহ / পরীক্ষা_জোজসন.পি ____________________

টেস্ট_জেজসন.পি.অর্থসমূহ: ইন (মডিউল) থেকে পাইক্যাম্পেল.অর্থোনসগুলি আমদানি করে জিওজেসন রিসপনস .. \ পাইকাম্পল \ প্রতিক্রিয়াগুলি \ জিওজেসন রিসপনস.পি: 12: ইন (মডিউল)

ক্লাস জিওজেসন রেসপন্স (প্রতিক্রিয়া): ই প্রকারের ত্রুটি: মডিউল () সর্বোচ্চ 2 টি আর্গুমেন্ট নেয় (3 প্রদত্ত)

ত্রুটি: পাওয়া যায় নি: \ পাইএক্সাম্পল \ পরীক্ষা \ টেস্ট_জোজসন.পি :: টেস্টজিওজসন :: টেস্ট_াপি_অগ্রহ

সি:। \ Python37 \ liberal এর সংক্ষিপ্ত রূপ \ সাইট-প্যাকেজ \ aenum__init __ PY: 163

(কোনও নাম নেই 'পাইএক্সামেল \ টেস্টস \ টেস্ট_জোজসন.পি :: টেস্টজিওজসন :: টেস্ট_পি_অগ্রহাত্মক' []]

ত্রুটিগুলি আমাকে সঠিক দিকে নির্দেশ করার জন্য যথাসাধ্য চেষ্টা করেছিল এবং @ মিকি পার্লস্টেইনের উত্তরটি মারা গিয়েছিল, আমার নিজের প্রসঙ্গে সমস্ত কিছু একসাথে রাখতে আমার এক মিনিট সময় লেগেছিল:

আমি মডিউলটি আমদানি করছিলাম :

from pyexample.responses import Response

যখন আমার ক্লাসটি আমদানি করা উচিত ছিল :

from pyexample.responses.Response import Response

আশা করি এটি কাউকে সাহায্য করবে। (আমার প্রতিরক্ষায় এটি এখনও বেশ তাড়াতাড়ি early


এটি প্রশ্নের সাথে কীভাবে সম্পর্কিত?
লীভি এল

3

পাইথন ৩.6.১ এ আপনি নিম্নলিখিতগুলিও করতে পারেন

from Object import Object as Parent

এবং আপনার শ্রেণীর সংজ্ঞা:

class Visitor(Parent):


0

আমার ক্ষেত্রে যেখানে আমার সমস্যা ছিল আমি যখন ক্লাসটি বাড়ানোর চেষ্টা করছিলাম তখন আমি একটি মডিউল উল্লেখ করছিলাম।

import logging
class UserdefinedLogging(logging):

আপনি যদি ডকুমেন্টেশন তথ্যটি দেখেন, আপনি মডিউল হিসাবে প্রদর্শিত "লগিং" দেখতে পাবেন।

এই নির্দিষ্ট ক্ষেত্রে আমাকে লগিংয়ের জন্য অতিরিক্ত ক্লাস তৈরি করতে কেবল লগিং মডিউলটি উত্তরাধিকারী হতে হয়েছিল।


এটি কোনও মন্তব্য হিসাবে যোগ্য হতে পারে, উত্তর নয়। দয়া করে কেবল উত্তর দিন যদি আপনি মনে করেন এটি সমস্যার সমাধান করবে।
হামজা খুরশিদ

এর জন্যে দুঃখিত. সক্রিয়ভাবে স্ট্যাকওভারফ্লো ব্যবহার করতে আমি নতুন এবং সাইটের নেটিওয়েটের সাথে আমি তেমন পরিচিত নই।
জেরার্ডসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.