如何在Python中a, b = myClass(a, b)?
How to a, b = myClass(a, b) in Python?
Python 这样做:
t = (1, 2)
x, y = t
# x = 1
# y = 2
我如何实现我的 class 目标
class myClass():
def __init__(self, a, b):
self.a = a
self.b = b
mc = myClass(1, 2)
x, y = mc
# x = 1
# y = 2
有什么神奇的功能可以实现吗?
您需要 class iterable。通过向其中添加 __iter__
方法来执行此操作。
class myClass():
def __init__(self, a, b):
self.a = a
self.b = b
def __iter__(self):
return iter([self.a, self.b])
mc = myClass(1, 2)
x, y = mc
print(x, y)
输出:
1 2
如果您的 class 没有做太多其他事情,您可能更愿意使用 named tuple:
from collections import namedtuple
MyClass = namedtuple('MyClass', 'a b')
mc = MyClass(1, 2)
print(mc.a, mc.b) # -> 1 2
x, y = mc
print(x, y) # -> 1 2
顺便说一句,样式说明:Class 名称应为 UpperCamelCase。
Python 这样做:
t = (1, 2)
x, y = t
# x = 1
# y = 2
我如何实现我的 class 目标
class myClass():
def __init__(self, a, b):
self.a = a
self.b = b
mc = myClass(1, 2)
x, y = mc
# x = 1
# y = 2
有什么神奇的功能可以实现吗?
您需要 class iterable。通过向其中添加 __iter__
方法来执行此操作。
class myClass():
def __init__(self, a, b):
self.a = a
self.b = b
def __iter__(self):
return iter([self.a, self.b])
mc = myClass(1, 2)
x, y = mc
print(x, y)
输出:
1 2
如果您的 class 没有做太多其他事情,您可能更愿意使用 named tuple:
from collections import namedtuple
MyClass = namedtuple('MyClass', 'a b')
mc = MyClass(1, 2)
print(mc.a, mc.b) # -> 1 2
x, y = mc
print(x, y) # -> 1 2
顺便说一句,样式说明:Class 名称应为 UpperCamelCase。