python __str__ , __repr__区别】的更多相关文章

Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式 (如果没有等价的语法,则会发生SyntaxError 异常) 某对象没有适于人阅读的解释形式的话, str() 会返回与repr() 等同的值.很多类型,诸如数值或链表.字典这样的结构,针对各函数都有着统一的解读方式. 字符串和浮点数,有着独特的解读方式. class Person(object): def __str__(…
For ( __str__ ),we going to see a example ... and find who is working for ... #!/usr/bin/python class Person(object): def __init__(self,name,gender): self.name = name self.gender = gender if __name__ == '__main__': p = Person('Frank',23) print p See,…
当print 实例化对象的时候,可以直接输出__str__ 中的 return结果 在console中 直接输实例对象c 只能输出<__main__.Cycle object at 0x00000000057671D0>   似乎__str__() 不会被调用  可见__str__对于用户相对友好 而当print c的时候 可以直接输出return的结果 >>> class Cycle(object): def __init__(self,x): self.x=x def _…
Python中__repr__和__str__区别 看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c3…
1.%s,%r的区别 在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别. %s ⇒ str(),比较智能: %r ⇒ repr(),处理较为简单和直接: 处理一些简单对象时,二者几乎没有差别,本文重点列举一些二者的差异化用法: 1.1 处理字符串时 >> s = 'world' >> print('hello %s'%s) hello world >> print('hello %r'%s) hello 'w…
一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放入eval方法就能够执行的python语句字符串 注意,不要一看到format方法就认为他是用来取代%赋值的 *在里format方法可通过后面的!r与!s来指定使用repr还是str,即此时就不是用的format方法了,而是调用的repr或者str format有两种参数形式: 1:"",…
目录: 一. __getattribute__ 二.__str__,__repr__,__format__ 三.__doc__ 四.__module__和__class__ 一. __getattribute__                                                                class Foo: def __init__(self,x): self.x=x def __getattr__(self, item): print('执行…
Python的其他方法 1 __str__方法 触发时机: 使用print(对象)或者str(对象)的时候触发 功能: 查看对象信息 参数: 一个self接受当前对象 返回值: 必须返回字符串类型 基本用法 创建一个基本的类 class Cat(): gift = "catch mouse" def __init__(self,name): self.name = name def cat_info(self): strvar = "This object is {},and…
__call__ 方法 __call__ 是当对象被调用时会调用的方法,允许一个对象(类的实例等)像函数一样被调用,也可以传入参数. 1 class Foo(): 2 def __init__(self, x, y): 3 self.x = x 4 self.y = y 5 6 def __call__(self, m, n): 7 print('x is %s, y is %s, m is %s, n is %s' % (self.x, self.y, m, n)) 8 9 Foo(1, 2)…
class Www: def __init__(self,name): self.name=name def __str__(self): return '名称 %s'%self.name #__repr__=__str__ *这是在__str__转换__repr__函数的偷懒小方法 #__str__函数是可以直接把对实例进行调用并得到使用 '''交互模式: 方法一>>> print(Www('实验')) 方法二>>> s=Www('实验') >>>…
__str__()__repr__()__len__() str() 转字符串repr() 让字符原形毕露的方法len() 计算长度 内置的方法很多,但是并不是全部都在object中,比如len(),__len__(),比如说数字,时间,还有对象都是无法计算长度 # __del__ 析构函数 # 删除,python解释器本身也会自动删除 class A: def __del__(self): print("执行我啦") a = A() # del a # 这里不些括号也行 del(a)…
[__str__&__repr__] object.__str__(self): Called by the str() built-in function and by the print statement to compute the “informal” string representation of an object. This differs from __repr__() in that it does not have to be a valid Python express…
反射 反射用到的mmp模块 def wahaha():print('wahaha') class QQxing: def __init__(self,name): self.name = name def ADCa(self): print('in ADCa',self.name) # a # b # wahaha # QQxing # getattr('a') import sys print(sys.modules) print(sys.modules[__name__]) print(ge…
class School: def __init__(self,name,addr,type): self.name=name self.addr=addr self.type=type def __repr__(self): return 'School(%s,%s)' %(self.name,self.addr) def __str__(self): return '(%s,%s)' %(self.name,self.addr) def __add__(self, other): retur…
import,reload,__import__在python中的区别 http://blog.csdn.net/five3/article/details/7762870 import作用:导入/引入一个python标准模块,其中包括.py文件.带有__init__.py文件的目录.e.g: import module_name[,module1,...] from module import *|child[,child1,...] 说明:多次重复使用import语句时,不会重新加载被指定的…
[python's is&==区别] 通常我们写: if foo is None: pass 这个写法与以下的写法有何区别呢? if foo == None: pass is当比较的是相同的对象实例时总是返回True.而==则完全决定于__eq__()方法的实现.例如: >>> class foo(object): def __eq__(self, other): return True >>> f = foo() >>> f == None…
__str__,__repr__ __str__:控制返回值,并且返回值必须是str类型,否则报错 __repr__:控制返回值并且返回值必须是str类型,否则报错 __repr__是__str__的替代品,如果str存在,直接按str的返回值,返回信息,不会执行repr,如果不存在,会执行repr,并得到repr的返回值 class Foo: def __init__(self,name,age): self.name = name self.age = age # def __str__(s…
在python中is和==都说常用的运算符之一,主要用于检测两个变量是否相等,返回True或者False,具体区别在哪呢? 一.前言 在讲解is和==区别直接先讲解一下内置函数id(),其实在文章 python可变数据类型和不可变数据类型 中也对内置函数id()有过讲解,主要用于获取变量的内存地址!关于内存现在不做过多讲解,你可以把内存地址当作一串数字符号,内存地址就好比每个人都有一个身份证号码一样! # !usr/bin/env python # -*- coding:utf-8 _*- "&…
内置方法(双下方法,魔术方法) 在不需要程序员定义,本身就存在的类中的方法就是内置方法 内置方法:  __名字__ __init__   不需要我们主动调用,而是在实例化的时候内部自动调用的,存在一种自动触发它的语法 __str__ __repr__ __str__当你打印一个对象的时候 触发__str__当你使用%s格式化的时候 触发__str__str强转数据类型的时候 触发__str____repr__repr是str的备胎有__str__的时候执行__str__,没有实现__str__的…
class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190> # 看到了么?上面打印类对象并不是很友好,显示的是对象…
class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190> # 看到了么?上面打印类对象并不是很友好,显示的是对象…
看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190> # 看到了么?上面打印类对象并不…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要.原因也很简单,因为我们debug的时候往往会想看下某个类当中的内容是不是符合我们的预期.但是我们直接print输出的话,只会得到一个地址. 我们来看一个例子: class point:    def __init__(self, x, y): …
看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190> # 看到了么?上面打印类对象并不…
1. 没定义__str__() print的时候得不到自己想要的东西 类默认转化的字符串基本没有我们想要的一些东西,仅仅包含了类的名称以及实例的 ID (理解为 Python 对象的内存地址即可).虽说这总比没有好,但确实是没什么用处啊. 所以,我们可能会手动打印对象的一些属性或者是在类里自己实现一个方法来返回我们需要的信息 2.使用 __str__ 实现类到字符串的转化 3.另一个就是 __repr__ 方法.后者的工作方式与前者类似,但是它被调用的时机不同 另外,列表以及字典等容器总是会使用…
内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方便地以字符串的方式获取对象的内容.类型.数值属性等信息.str()函数得到的字符串可读性好(故被print调用),而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的.这两个函数接受一个对象作为其参数,返回适当的字符串. 事实上repr()和``做一样的事情,返回一个对象的“官方”字符串表示.其结果绝大多数情况下(不…
object.__str__(self) Called by the str() built-in function and by the print statement to compute the “informal” string representation of an object. This differs from __repr__() in that it does not have to be a valid Python expression: a more convenie…
引自http://www.lxway.com/181844.htm 从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是个人都知道有多囫囵吞枣,这也是因为我暂时没有需求拿这个做大型开发,主要是平时的小程序test用一用.所以 我的策略是,整体浏览,用到时候现查.话说这核心编程第一版太古老了,老在讲2.2之前的东西,我看的翻译电子版,翻译得也不好,很晦涩.看完这个后还有 点云里雾里,看网上人家说DIP好,啄木鸟还有免费…
区别一:           python 2.0 : 源码不规范,重复代码很多 python 3.0 : 源码精简,美观.优雅 区别二: PY2 : 有整型int.长整型long. py3:只有整型int 区别三: py2:range(3) --->[0,1,2] xrange(3)--->迭代器 py3:range(3)--->range(0,3) 可迭代对象…
class Test(object): def __init__(self): pass def __str__(self): return "test" test = Test() print test >>>test 如上所示,print 方法默认调用的是对象的__str__方法 class Test(object): def __init__(self): pass def __repr__(self): return "test" test…