Django --魔法方法:def __str__()

  1. __str__是python的object基类的一个方法,也就是说python所有的类都有
  2. 当然django的modle类也有
  3. 我们平常创建一个类的对象,print这个对象时一般会是<__main_.TestClass object at 0x7f4126578828>,即这个对象的所属类和内存地址
  4. 我们改写类中的__str__方法后可以在print时得到想要的易于人阅读的对象的信息,以下是实例
# 一般情况
class TestClass:
    def __init__(self):
        self.name = ‘testcase‘
t = TestClass()
print(t)        # 得到<__main__.TestClass object at 0x7f8c49b21828>

# 改写__str__方法
class TestClass:
    def __init__(self):
        self.name = ‘testcase‘
    def __str__(self):
        return self.name
t = TestClass()
print(t)        # 得到testcase

原文地址:https://www.cnblogs.com/gengyufei/p/12628883.html

时间: 2024-10-15 16:37:46

Django --魔法方法:def __str__()的相关文章

python_魔法方法(三):__str__()和__repr__()

使用python的魔法方法和time模块定制一个计时器的类 1.用time模块里的localtime()方法获取时间2.time.localtime返回struct_time格式3.表现你的类:__str__()和__repr__()先来看下__str__()和__repr__()魔法方法 >>> class A(): def __str__(self): return "我在学习python" >>> a = A() >>> pr

关于__str__ __repr__魔法方法的使用

class A():    def __str__(self):        return "无良少年是帅哥"    def __repr__(self):        return "我也是帅哥" >>> a = A()>>> a我也是帅哥>>> print(a)无良少年是帅哥>>> __repr__方法可以用对象名直接输出内容

python中魔法方法__str__与__repr__的区别

提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 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

Python3基础 __str__ print一个类的实例对象的时候 使用的魔法方法

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: class MyClass : def __str__(self) : return "我是MyClass的一个实例" a=MyClass() print(a) result: ============= RESTART: C:\Users\Administrator

magic method细解python一直让我疑惑的几个常用魔法方法(上)

这里只分析几个可能会常用到的魔法方法,像__new__这种不常用的,用来做元类初始化的或者是__init__这种初始化使用的 每个人都会用的就不介绍了. 其实每个魔法方法都是在对内建方法的重写,和做像装饰器一样的行为.理解这个道理 再尝试去理解每个细节装饰器会比较方便. 关于__str__和__repr__: 直接上例子: class Test(object): def __init__(self, world): self.world = world def __str__(self): re

python魔法方法-属性转换和类的表示

类型转换魔法 类型转换魔法其实就是实现了str.int等工厂函数的结果,通常这些函数还有类型转换的功能,下面是一些相关的魔法方法: __int__(self) 转换成整型,对应int函数. __long__(self) 转换成长整型,对应long函数. __float__(self) 转换成浮点型,对应float函数. __complex__(self) 转换成 复数型,对应complex函数. __oct__(self) 转换成八进制,对应oct函数. __hex__(self) 转换成十六进

python魔法方法-自定义序列

自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python 的相关的协议.所谓的协议就是一些约定内容.例如,如果要将一个类要实现迭代,就必须实现两个魔法方法:__iter__.next(python3.x中为__new__).__iter__应该返回一个对象,这个对象必须实现 next 方法,通常返回的是 self 本身.而 next 方法必须在每次调用的时

python 魔法方法(学习过程的笔记)

有小伙伴会问,什么是python的魔法方法,python的魔法方法有什么用呢, 它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是两个下划线包围来命名的. 我感觉魔法方法很牛逼的, 目前我们常见的魔法方法大致可分为以下几类: 构造与初始化 类的表示 访问控制 比较操作 容器类操作 可调用对象 Pickling序列化 在我们写python中最常见的就是__init__,这是python的构造方法,这是初始化对象,定义一个对象的初始化的值,_

常见的魔法方法及使用

常见的魔法方法有如下: __init__ 初始化类属性的方法 __repr__ 定义 当 repr()  被你的一个类的实例调用时所要产生的行为. str() 和 repr() 的主要区别是其目标群体. repr() 返回的是机器可读的输出,而 str() 返回的是人类可读的. __str__ 定义当 str() 被你的一个类的实例调用时所要产生的行为.后面例子中print输出的时候就相当于在调用方法__str____call__ 使一个类的实例像函数一样被调用:x(a, b) 调用 x.__c