python中类的输出或类的实例输出为<__main__类名 object at xxxx>这种形式的原因

yipeiwu_com6年前Python基础

原因: __str__()这个特殊方法将对象转换为字符串的结果

效果图:

代码: 

# 定义一个Person类
class Person(object):
  """人类"""
  def __init__(self, name , age):
    self.name = name
    self.age = age

p = Person(‘小黑‘,18)
print(p)

print(‘\n\n\n\n\n‘)

# 定义一个Person类
class Person(object):
  """人类"""
  def __init__(self, name , age):
    self.name = name
    self.age = age

  # __str__()这个特殊方法会在尝试将对象转换为字符串的时候调用
  # 它的作用可以用来指定对象转换为字符串的结果 (print函数) 
  def __str__(self):
    print(Person)
    return ‘Person [name=%s , age=%d]‘%(self.name,self.age) 

p = Person(‘小黑‘,18)
print(p)

python中类的输出或类的实例输出为何是<__main__类名 object at xxxx>这种形式?

相关文章

详解django中url路由配置及渲染方式

详解django中url路由配置及渲染方式

今天我们学习如何配置url、如何传参、如何命名、以及渲染的方式,内容大致有以下几个方面。 创建视图函数并访问 创建app django中url规则 捕获参数 路径转...

在Python中预先初始化列表内容和长度的实现

如果想设置相同的初值和想要的长度 >>> a=[None]*4 >>> print(a) [None, None, None, None] 如果...

修改Python的pyxmpp2中的主循环使其提高性能

引子 之前clubot使用的pyxmpp2的默认mainloop也就是一个poll的主循环,但是clubot上线后资源占用非常厉害,使用strace跟踪发现clubot在不停的poll,...

python判断数字是否是超级素数幂

如果一个数字能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数字就是超级素数幂。 param number: 测试该数字是否是超级素数幂 return: 如果不是就返回 F...

解决安装python库时windows error5 报错的问题

python安装库时,有时候会报错windows error 5,可以尝试关闭所有使用python的编辑器、文件等,然后重新pip安装,如果还是不行,可以将报错最下层文件删除即可(如果不...