__init__() 缺少 1 个必需的位置参数"地址"



这是我的代码。我有这个erro消息:TypeError: INIT ()缺少1所需的位置参数:'address'您认为似乎是什么问题?

class Person:
def __init__(self, name, address):
    self.name = name
    self.address = address
def say_name(self):
    print('Hello, my name is', self.name)
def say_address(self):
    print('Hello, my name address', self.address)
p = Person('Swaroop')
q = Person('Duisburg')
p.say_name()
q.say_address()

您的__init__被声明为nameaddress

def __init__(self, name, address):

这意味着您需要提供两者,因此以下情况无效:

p = Person('Swaroop')

如果您有无法提供地址的用例,则可以使参数可选:

def __init__(self, name, address=None):

如果未提供参数,上述语句将给出address的默认值None


仔细查看您的代码,似乎您想提供一个名称和地址作为两个单独的对象:

p = Person('Swaroop') # name
q = Person('Duisburg') # address

请注意,参数是通过位置标识的,因此q上的Duisburg将对应于name参数。

您只需使用一个对象就可以实现想要的目标:

p = Person('Swaroop', 'Duisburg')
p.say_name()
p.say_address()
import sqlite3
from sqlite3 import Error
def create_connection(db_file):
    """ create a database connection to a SQLite database """
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        print(e)   
        conn.close()
class Person(object): 
    def __init__(self, name): 
        self.name = name  
    def getName(self): 
        return self.name 
class Employee(Person): 
    def __init__(self, name, age): 
        Person.__init__(self, name) 
        self.age = age 
    def getAge(self): 
        return self.age 
class main(Employee): 
    def __init__(self, name, age, address): 
        Employee.__init__(self, name, age) 
        self.address = address 
    def display(self):
        print(self.name, self.age, self.address)
    def getAddress(self): 
        return self.address 
    def view_all_empdata(conn): 
        cur = conn.cursor()
        cur.execute("SELECT * FROM empdata")
        rows = cur.fetchall()
        for row in rows:
            print(row)
    def main():
        database = "/home/vandana/Desktop/PythonDatabase/Emp2"
        conn = create_connection(database)
        with conn:
            print("View All Employee")
            select_all_emp(conn)
if __name__ == '__main__':
    main()

最新更新