Python Forum
TypeError: __init__() missing 3 required positional arguments
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
TypeError: __init__() missing 3 required positional arguments
#5
(Jan-20-2019, 02:18 PM)DeaD_EyE Wrote: This should work.

class JuniorMember(Member):
    def __init__(self, MemberName, MemberID, SubscriptionPaid):
        super().__init__(MemberName, MemberID, SubscriptionPaid)
        self.DateOfBirth = ""
PS: I forgot to hit the post button :-/

I remember trying that too and it resulted in the same error:
TypeError: __init__() missing 3 required positional arguments: 'MemberName', 'MemberID', and 'SubscriptionPaid'

(Jan-20-2019, 08:33 PM)snippsat Wrote: It's Java written in Python,it's not your fault we see this often in education when have teacher that's come from a Java/C++ background.

Just to show how it could be written in more pythonic way.
Remove getters/setters and __(is not private,it's name mangling that's not needed here), PEP-8 Wink

class Member() :
    def __init__(self, member_name, member_id, subscription_paid):
        self.member_name = member_name
        self.member_id = member_id
        self.subscription_paid = subscription_paid

class JuniorMember (Member):
    def __init__(self,member_name, member_id, subscription_paid, date_of_birth):
        super().__init__(member_name, member_id, subscription_paid)
        self.date_of_birth = date_of_birth
Test usage:
>>> new_member = JuniorMember('Ali', 12345, True, "12/11/2001")
>>> new_member.member_name
'Ali'
>>> new_member.date_of_birth
'12/11/2001'.

>>> an_other_member = JuniorMember('Tom', 4444, True, "1/2/2018")
>>> an_other_member.member_id
4444
>>> an_other_member.subscription_paid
True

>>> regular_member = Member('Kent', 9999, True)
>>> regular_member.member_name
'Kent'
But i don't want to give all data at once,use getters/setter?
No it's simple attribute access,have to prove that need more that,if need more @property can be used.
Use default arguments.
def __init__(self,member_name='', member_id='', subscription_paid='', date_of_birth=''):
>>> new_member = JuniorMember()
>>> new_member.date_of_birth = '12/11/2001'
>>> new_member.date_of_birth
'12/11/2001'

This is a fantastic break down and very useful for a beginner and something I will be using definitely, however, I think the purpose of the task is to demonstrate set methods:
• SetMemberName
• SetMemberID
• SetSubscriptionPaid

Wall TypeError: __init__() missing 3 required positional arguments: 'MemberName', 'MemberID', and 'SubscriptionPaid' Wall
Reply


Messages In This Thread
RE: TypeError: __init__() missing 3 required positional arguments - by Pythonhelp82 - Jan-21-2019, 03:21 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  TypeError: __init__() missing 1 required positional argument: 'successor siki 1 5,836 Mar-08-2021, 02:05 PM
Last Post: Larz60+
  Missing 1 required positional argument in python code edwinostby 7 13,485 Jan-19-2021, 12:52 PM
Last Post: Serafim
  Missing positional arguments error?? hhydration 2 2,869 Oct-01-2020, 05:33 AM
Last Post: buran
  TypeError: Missing required positional arguments liaisa 7 39,239 Sep-25-2020, 08:16 PM
Last Post: deanhystad
  missing positional argument error programmert 1 3,492 Oct-18-2019, 11:05 AM
Last Post: Larz60+
  missing 1 required positional argument jedmond2 4 12,196 Sep-19-2019, 12:00 PM
Last Post: jefsummers
  missing 1 required positional argument mcgrim 10 22,349 May-07-2019, 09:02 PM
Last Post: Yoriz
  TypeError: method missing 1 positional argument koolinka 4 7,955 Nov-18-2018, 04:53 PM
Last Post: ichabod801

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020