gpt4 book ai didi

python - Python 中的多个函数

转载 作者:太空狗 更新时间:2023-10-29 21:27:53 25 4
gpt4 key购买 nike

我们有一些变量或其他实例:a='?'。我们有这样的输入:

f = a(3112).bas(443).ssad(34) 

当我们打字时

print(f)

输出应该是:

3112a-443bas-34ssad

我已经尝试了一些方法来解决这个问题并找到了有关链接的信息,但我仍然遇到问题。我无法将类名返回到字符串的开头。

这个,我有:

class A():       

def __getattribute__(self, item):
print (str(item))
return super(A, self).__getattribute__(item)

def __init__(self, x):
self.x = x
print (str(x))

def b(self, item):
print (str(item))
return self

def c(self, item):
print (str(item))
return self

def d(self, item):
print (str(item))
return self

A(100).b(200).c(300).d(400)

我的输出:

100
b
200
c
300
d
400

但我无法将它连接成一个字符串。

最佳答案

动态方式

class A(object):

def __init__(self, integer):
self._strings = ['{}a'.format(integer)]


def __getattr__(self, attrname, *args):
def wrapper(*args, **kwargs):
self._strings.append('{}{}'.format(args[0], attrname))
return self

return wrapper


def __str__(self):
return '-'.join(self._strings)


print(A(100).bas(200).ssad(300))

输出

100a-200bas-300ssad

还有

 print(A(100).egg(200).bacon(300).SPAM(1000))

输出

100a-200egg-300bacon-1000SPAM

静态方式

class A(object):

def __init__(self, integer):
self._strings = ['{}a'.format(integer)]


def bas(self, integer):
self._strings.append('{}bas'.format(integer))
return self

def ssad(self, integer):
self._strings.append('{}ssad'.format(integer))
return self

def __str__(self):
return '-'.join(self._strings)


print(A(100).b(200).c(300))

输出

100a-200bas-300ssad

More about __str__

关于python - Python 中的多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823375/

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