MySQL python: 修改类的打印方式

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)
Mysql

输出结果为:

<__main__.Employee object at 0x7fc1131eaef0>
Mysql

这并不是我们想要的结果。因此,我们需要修改这个类的打印方式。

方法

我们可以通过在类中定义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)
Mysql

输出结果为:

John Smith (30), Manager
Mysql

这正是我们想要的结果。

示例

以下是一个更完整的例子。在这个例子中,我们创建了一个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)
Mysql

输出结果为:

John Smith (36 years old)
Jane Doe (29 years old)
Bob Johnson (54 years old)
Mysql

正如我们所希望的那样,打印出来的结果是人们的名字和年龄,更具可读性。

总结

在MySQL数据库中使用Python编写的类时,我们可以通过在类中定义str方法来修改打印方式。这将使打印输出更易读,适合我们的需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册