在python中定义函数

在python中,我要定义一个函数,但是函数的表达式由用户输入.我后面要多次调用这个函数.怎么办 如果直接return input().那么每次调用用户都要输一遍....

涉及到状态保存,可以使用函子(书上这么翻译的,不晓得其他人是不是也这样叫),给你个例子,你比对着改。如果不懂,自己再延这个方向去查看资料。

class Strip:
    def __init__(self, characters): #初始化,将需要保留的状态信息存起来
        self.characters = characters
    def __call__(self, string): #创建的函子被使用时,自动调用__call__
        return string.strip(self.characters)
#下面是使用方法,两个语句是密切衔接的。
strip_punctution = Strip(',;:.!?') #字符串参数将被__init__吃进去,并且保留在class中,
#相当于一种状态保存的方法,在你的例子中,你可以将用户表达式通过这种方式保存起来

strip_punctution('hello world!') #return 'hello world',他的功能是剥离characters
#字符串中出现的字符,此处把感叹号去掉了,
#这就是函子典型的使用方法,class中的__call__函数被自动调用,在你的
#例子中,你可以通过这样的方式调用函数,就不用每次重新输入表达式了。

  

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-04
#简单的应该能实现
expression = raw_input('请输入一个表达式: ')
#此处输入一个很简单的表达是 a = 1
def func():
exec expression
print a
#之后你电泳func()就会返回print a 的值。
#这样做,在python中还要考虑缩进,让用户输入会很麻烦
相似回答