如果在print_object中使用isinstance 该怎么改呢
时间: 2024-03-15 07:45:40 浏览: 20
如果您希望在`print_object`方法中使用`isinstance`来检查`target_object`的类型,您可以按照以下方式修改代码:
```python
class IOInterface:
def print_object(self, target_object):
if isinstance(target_object, Customer):
print('Printing Customer object:')
print('user_id:', target_object.user_id)
print('user_name:', target_object.user_name)
print('user_password:', target_object.user_password)
print('user_register_time:', target_object.user_register_time)
print('user_role:', target_object.user_role)
print('user_email:', target_object.user_email)
print('user_mobile:', target_object.user_mobile)
elif isinstance(target_object, Admin):
print('Printing Admin object:')
print('user_id:', target_object.user_id)
print('user_name:', target_object.user_name)
print('user_password:', target_object.user_password)
print('user_register_time:', target_object.user_register_time)
print('user_role:', target_object.user_role)
else:
print('Object type not supported.')
```
在上面的代码中,我们首先使用`isinstance`检查`target_object`的类型,如果它是`Customer`对象,则打印出所有的属性。如果它是`Admin`对象,则打印出除了`user_email`和`user_mobile`之外的所有属性。如果它是其他类型的对象,则打印出一条错误消息。
您可以像之前一样创建`Customer`和`Admin`对象,并使用`IOInterface`的`print_object`方法来打印它们的属性和值。例如:
```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)
```
输出结果如下:
```
Printing Customer object:
user_id: 1
user_name: John
user_password: password
user_register_time: 2021-01-01
user_role: customer
user_email: john@example.com
user_mobile: 1234567890
Printing Admin object:
user_id: 2
user_name: Admin
user_password: admin123
user_register_time: 2021-01-01
user_role: admin
```
请注意,此方法仅支持`Customer`和`Admin`对象。如果您想要支持其他类型的对象,请在`print_object`方法中添加适当的检查。