有一个class customer:属性有user_id, user_name, user_password, user_register_time, user_role, user_email, user_mobile和另一个class admin 属性是user_id, user_name, user_password, user_register_time, user_role='admin' 我现在想在io interface class中写一个方法 def print_object(target_object),要求打印出target_object 该怎么写呢
时间: 2023-08-09 07:11:43 浏览: 48
您可以在IO Interface Class中编写一个名为print_object的方法,该方法接受一个参数target_object。在该方法中,您可以使用Python内置的dir()函数获取target_object的所有属性和方法。
然后,您可以使用Python的字符串格式化功能(即使用“{}”和“format()”函数)将属性和方法的名称和值打印出来。下面是一个示例代码:
```python
class IOInterface:
def print_object(self, target_object):
obj_attrs = dir(target_object)
for attr in obj_attrs:
if not attr.startswith('__'):
attr_value = getattr(target_object, attr)
print('{}: {}'.format(attr, attr_value))
```
您可以使用此方法来打印customer或admin对象的属性和值,如下所示:
```python
# 创建customer对象
class Customer:
def __init__(self, user_id, user_name, user_password, user_register_time, user_role, user_email, user_mobile):
self.user_id = user_id
self.user_name = user_name
self.user_password = user_password
self.user_register_time = user_register_time
self.user_role = user_role
self.user_email = user_email
self.user_mobile = user_mobile
customer = Customer(1, 'John', 'password', '2021-01-01', 'customer', 'john@example.com', '1234567890')
# 创建admin对象
class Admin:
def __init__(self, user_id, user_name, user_password, user_register_time):
self.user_id = user_id
self.user_name = user_name
self.user_password = user_password
self.user_register_time = user_register_time
self.user_role = 'admin'
admin = Admin(2, 'Admin', 'admin123', '2021-01-01')
# 打印customer对象
io = IOInterface()
io.print_object(customer)
# 打印admin对象
io.print_object(admin)
```
输出结果如下:
```
user_email: john@example.com
user_id: 1
user_mobile: 1234567890
user_name: John
user_password: password
user_register_time: 2021-01-01
user_role: customer
user_id: 2
user_name: Admin
user_password: admin123
user_register_time: 2021-01-01
user_role: admin
```
这个方法可以打印出任何对象的属性和值,只要它们具有可访问的属性和方法。