如何定义一个方法int.from_字节()在Python中?

2024-06-16 08:41:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中有一个关于int类型的方法,即int.from_bytes。它不是特定int上的方法,而是类型上的方法。E、 g

>>> int.from_bytes(b'\xee\xff',"big")
61183

>>> int.from_bytes
<built-in method from_bytes of type object at 0x107fdb388>

我怎么定义这样的东西?假设定义了一个名为“point”的类,如何定义类似

^{pr2}$

是吗?(假设用不同的方法初始化点。)


Tags: of方法infrom类型bytes定义object
2条回答

您需要^{},它通常用作装饰器:

class point(object):
    @classmethod
    def from_coordinates(cls, x, y):
        pt = cls()
        pt.x, pt.y = x, y
        return pt

这有时被称为“替代构造函数”习惯用法。如果把所有的参数都放在一个不同的方法中,{cds}都是不同的

您可以使用一个classmethod,比如一个模拟的例子,它的init需要整数,但也提供了一个方便的from_hex,它试图获取字符串并将其转换为整数。。。在

class MyClass(object):
    def __init__(self, a, b):
        self.a = a
        self.b = b
    @classmethod
    def from_hex(cls, a, b):
        return cls(int(a, 16), int(b, 16))

from_hex知道它与哪个类关联,所以通过调用cls(...)你就可以构造一个MyClass的类型,就像你自己用有效的整数编写了MyClass(a, b)。在

相关问题 更多 >