在交互式模式下,类中同时实现__str__()和__repr__()方法: 直接输入实例名称显示repr返回的类容: 用print打印实例名称显示str返回的内容: >>> class Test: ... def __repr__(self): ... return 'Test -> return repr' ... def __str__(self): ... return 'Test -> return str' ... >>> t = Test() &…
一.__str__ 打印时触发 class A: def __str__(self): #打印时候执行的代码块 return 'ok' # 如果不返回字符串类型,则会报错 print(A()) #相当于 print(A().__str__()) # 打印的时候就是在打印返回值 二.__ repr__ str函数或者print函数--->obj.__str__() repr或者交互式解释器--->obj.__repr__() str函数或者print函数如果__str__没有被定义,那么就会使用…
__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): return '(Person: %s, %s)' % (self.name, self.gender) 现在,在交互式命令行下用 print 试试: >>>…
首先看一段代码: class Foo(): def __init__(self): print "__init__ method" def public_method(self): print "public_method" def __private_method(self): print "__private_method" def _halfprivate_method(self): print "_halfprivate_met…
先看两个类的方法: >>> class nc(): def __init__(self): self.name ='tester' #name变量加self >>> class mc(): def __init__(self): name = 'tesster' #name变量不加self >>> nc = nc() #实例化nc() >>> nc.name #通过.操作符可以调用该方法的属性name,说明加self后的name是该方…
在python的类语法中,可以出现三种方法,具体如下: (1)实例方法 1)第一个参数必须是实例本身,一般使用[self]表示. 2)在实例方法中,可以通过[self]来操作实例属性,[类名]来操作类属性. 3)实例方法只能通过实例对象去调用,尽管也可以通过类名间接调用[类名.方法名(self, ...)],但此时仍然需要传入self对象. (2)类方法 1)使用[@classmethod]修饰函数,且第一个参数必须是类本身,一般使用[cls]表示. 2)在类方法中,可以使用[cls=类名]来操…
提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 In [1]: class People: ...: def __init__(self, name, sex): ...: self.name = name ...: self.sex = sex ...: In [2]: p = People('xiaoming', 'male') In [3]: p Out[3]: <__main__.People at 0x7…
在python类中有个__str__的特殊方法,该方法可以使print打印出来的东西更美观,在类里就可以定义,如下代码: class Test: def __init__(self, name, job): self.name = name self.job = job def __str__(self): return 'Name:' + self.name instance = Test('xiaoming', 'Teacher') print(instance) 代码中print(inst…
第8章 Python类中常用的特殊变量和方法 第8.1节 Python类的构造方法__init__深入剖析:语法释义 第8.2节 Python类的__init__方法深入剖析:构造方法案例详解 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 第8.4节 Python类中不是构造方法却胜似构造方法的__new方法__深入剖析:语法释义 第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执行顺序及参数关系案例详解 第8.6节 Pyt…
先提出一个疑问,为什么print函数可以直接打印参数呢?即使是数字?例如print 1,就会打印1.我们知道1的类型是整型(题外话,在python中1是常量,也是类int的对象,而java中1只是常量),按理说print接受的参数应该是字符串啊? 回答: 因为print函数会首先调用str()函数将参数转化为str类型,而str()函数会调用这个参数所属类中的__str__方法(如果类中有此方法的话),我们可以重写这个__str__方法. class poo(object): def __str…