gpt4 book ai didi

python - Python 中的元类和语法

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:41 25 4
gpt4 key购买 nike

我试着做类似的东西:

class oObject(object):
def __init__(self, x = 0, y = 0, z = 0):
self.x = x
self.y = y
self.z = z

def asString (self, value):
return str(value)

vector = oObject(5,5,5)

# So i can do
asString(vector.x)

# But I want this kind of syntax
vector.x.asString()

这只是一个例子,我真的不想将整数转换成字符串。它更多的是关于类里面的类。

最佳答案

您可以为您的 oObject 类编写一个返回给定 key 字符串的自定义方法,或者您可以编写一个自定义 Variant 类并包装你的值:

class oObject(object):
def __init__(self, x = 0, y = 0, z = 0):
self.x = Variant(x)
self.y = Variant(y)
self.z = Variant(z)

class Variant(object):
def __init__(self, obj):
self._obj = obj

def __repr__(self):
return '<%s: %s>' % (self.__class__.__name__, self.asString())

def __str__(self):
return self.asString()

def asString(self):
return str(self._obj)

def value(self):
return self._obj

查看有关 PyQt4 如何使用 QVariant class 的引用资料,这实际上来自 Qt。通常 python 不需要这种类型,但 C++ 有必要表示多种类型。

关于python - Python 中的元类和语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11385521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com