这是我的代码。我有这个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__
被声明为name
和address
:
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()