Overload * operator in python (or emulate it)

不打扰是莪最后的温柔 提交于 2019-12-04 14:47:14

I don't think you understood the unary * and ** "operators" correctly.

They unpack a list/dict into function arguments/keyword arguments. There is nothing else that makes sense in this context. Thus, they cannot be overloaded.

Actually, using them is a syntax error anywhere but in a function declaration/call.

You mean

class Pointer(object):
    def __init__(self, pointee):
        self.pointee = pointee

    def deref(self):
        return self.pointee

is not what you want?

Could you be more specific on what the advantage of writing as *ptr is, instead of ptr.deref() defined above?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!