MySQL python: 修改类的打印方式
在本文中,我们将介绍如何通过在MySQL数据库中使用python编写的类来修改类的打印方式。
阅读更多:MySQL 教程
背景
在使用Python编写MySQL类时,我们通常可以通过print语句来打印该类的实例。然而,在默认情况下,打印出来的内容可能并不符合我们的需求。例如,下面是一个Employee类的实例:
class Employee:
def __init__(self, name, age, position):
self.name = name
self.age = age
self.position = position
employee = Employee("John Smith", 30, "Manager")
print(employee)
输出结果为:
<__main__.Employee object at 0x7fc1131eaef0>
这并不是我们想要的结果。因此,我们需要修改这个类的打印方式。
方法
我们可以通过在类中定义str方法来修改类的打印方式。str方法返回对象的字符串表示形式。例如,我们可以将Employee类改为:
class Employee:
def __init__(self, name, age, position):
self.name = name
self.age = age
self.position = position
def __str__(self):
return f"{self.name} ({self.age}), {self.position}"
employee = Employee("John Smith", 30, "Manager")
print(employee)
输出结果为:
John Smith (30), Manager
这正是我们想要的结果。
示例
以下是一个更完整的例子。在这个例子中,我们创建了一个Database类来连接到MySQL数据库。该类包括一个查询方法,该方法从数据库中获取数据并返回一个包含查询结果的元组。我们将使用上面介绍的方法来修改打印的元组,以便更好地显示结果。
import mysql.connector
class Database:
def __init__(self, host, user, password, database):
self.host = host
self.user = user
self.password = password
self.database = database
def connect(self):
cnx = mysql.connector.connect(
host=self.host,
user=self.user,
password=self.password,
database=self.database
)
cursor = cnx.cursor()
return cnx, cursor
def query(self, query, params=None):
cnx, cursor = self.connect()
cursor.execute(query, params)
result = cursor.fetchall()
cnx.commit()
cnx.close()
return result
class Person:
def __init__(self, first_name, last_name, age):
self.first_name = first_name
self.last_name = last_name
self.age = age
def __str__(self):
return f"{self.first_name} {self.last_name} ({self.age} years old)"
database = Database("localhost", "root", "password", "test")
query = "SELECT first_name, last_name, age FROM people"
result = database.query(query)
people = []
for row in result:
first_name, last_name, age = row
person = Person(first_name, last_name, age)
people.append(person)
for person in people:
print(person)
输出结果为:
John Smith (36 years old)
Jane Doe (29 years old)
Bob Johnson (54 years old)
正如我们所希望的那样,打印出来的结果是人们的名字和年龄,更具可读性。
总结
在MySQL数据库中使用Python编写的类时,我们可以通过在类中定义str方法来修改打印方式。这将使打印输出更易读,适合我们的需求。