在Python中,object
该类充当所有(新样式)类的根超类。至少默认情况下,将str
和repr
应用于的任何子类的“类实例”object
会产生相同的结果:
>>> class spam(object): pass
...
>>> str(spam)
"<class '__main__.spam'>"
>>> str(spam) == repr(spam)
我想定义一个的子类object
,例如fancyobject
,它object
在每种方式上都是相同的,除了对自身str
和产生不同的输出:repr``fancyobject
>>> class ham(fancyobject): pass
...
>>> str(ham)
'ham'
>>> repr(ham)
"<class '__main__.ham'>"
有没有办法在Python中做到这一点?
PS:我知道__str__
特殊的方法,但是据我了解,如果类A
重写__str__
,则仅当str
在的实例上调用时才调用覆盖方法A
,而不是在A
自身上调用时。即:
>>> class A(object):
... def __str__(self):
... return 'from new __str__: ' + object.__str__(self)
...
>>> str(A())
'from new __str__: <__main__.A object at 0x7f79c62a5310>'
>>> str(A)
"<class '__main__.A'>"
实际上,与对象实例相同的机制适用于类型。类型本身就是对象,因此可以通过调用 其
类型__str__()
上的方法(称为“元类”)将它们转换为字符串。因此,您必须覆盖元类上的方法: ____str__()
class fancytype(type):
def __str__(self):
return self.__name__
class ham(object):
__metaclass__ = fancytype
print ham
版画
ham
这是练习: 为编写特殊方法。 带输入的示例输出: 下面的代码是我想出来的,但是我收到了一个错误: 我想不出我错在哪了。
类是用于描述事物的的属性和行为的,而 Go 语言中的结构体正好可以用于描述事物的属性和行为 所以在 Go 语言中我们使用结构体来定义一个类型 type Person struct { name string // 人的属性 age int // 人的属性 } // 人的行为 func (p Person)Say() { fmt.Println("my name
我已经使用过,并且我知道JIT-编译器的基本技术以及为什么使用JIT-编译。 然而,我仍然没有发现JVM是如何决定JIT编译一个方法的,即“当正确的时间到来时JIT编译一个方法”。 (2)JVM如何将方法分为“非热”和“热”方法?执行次数?还要别的什么吗? (3)如果“hot”方法有特定的阈值(如执行次数),是否有Java标志()来设置此阈值?
在这一节中,我们正式的定义一个类。首先我给出PHP语言的实现: <?php class myclass { public $public_var; private $private_var; protected $protected_var; public static $static_var; public function __construct()
本文向大家介绍Python自定义一个异常类的方法,包括了Python自定义一个异常类的方法的使用技巧和注意事项,需要的朋友参考一下 如何实现自定义一个异常 python内置了许多异常类,为编写代码划定红线,才使调试代码时能及时发现错误。那么我们编写一个模块也可以为使用此模块者划定红线,来约束使用者可用哪些数据,这就需要自定义异常类型。 首先需要了的是自定义类是的父类: python说明文档中是这样
我试图从前端获取一个Json对象。这代表了一个过程。课程有一个现场徽标,即课程的图像。在我的控制器中,我有以下方法: 在服务层中,我有压缩(在DB中放置图像时)和取消压缩(在将图像渲染回fend时)的逻辑: 当我通过POSTMAN将带有徽标字段的JSON作为图像文件发送时,我得到415错误-未支持的媒体类型。 我错在哪里?我想我需要更换我的控制器,但如何更换呢?我需要从JSON with Mult