码迷,mamicode.com
首页 > 其他好文 > 详细

类的展现

时间:2019-08-25 17:39:46      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:unicode   lse   字符串   except   raise   repr   用户   print   www   

将对象转换为字符串
__str__ :将对象转换成适合人可以看懂的字符串 , 用于显示给用户 , 当打印一个类的实例对象时,会自动调用str方法,并返回回来一个字符串
__repr__ : 将对象转换 为适合机器解读的字符串 , 用于显示给开发人员
__unicode__ : 详见unicode与str
展现类的属性
__dir__ :可以直接调用此方法 , 展现所有的属性 , 也可以根据需求自定义此方法
实例
class Program(object):

def __init__(self, name, age):
self.name = name
if isinstance(age, int):
self.age = age
else:
raise Exception("age must be int")


def __dir__(self):
return self.__dict__.keys()


if __name__ == ‘__main__‘:
p = Program(‘mike‘, 22)
print(p)
print(dir(p))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
获取对象的信息
class Person(object):
def __init__(self, name, gender, **kwargs):
self.name = name
self.gender = gender
# 任意数量的参数 , 并通过 setattr() 绑定属性
for k, v in kwargs.items(http://www.amjmh.com/v/):
setattr(self, k, v)


if __name__ == ‘__main__‘:
p = Person(‘Bob‘, ‘Male‘, age=18, course=‘Python‘)
print(p.age)
print(p.course)
getattr(p, ‘name‘) # 获取那么属性值
print(p.name)
setattr(p, ‘name‘, ‘Adam‘) # 设置name属性值为Adam
print(p.name)
getattr(p, ‘age‘, 20) # 获取age属性 , 如果属性不存在 , 就返回默认值20
print(p.age)
————————————————

类的展现

标签:unicode   lse   字符串   except   raise   repr   用户   print   www   

原文地址:https://www.cnblogs.com/liyanyan665/p/11408544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!