Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将表达式赋给变量并在另一个函数中使用_Python - Fatal编程技术网

Python 将表达式赋给变量并在另一个函数中使用

Python 将表达式赋给变量并在另一个函数中使用,python,Python,我得到了下面的代码,应该用在另一个函数中,所以我想用一个变量传递它 soup.find("div", {"class" : "article-entry text"}).text.replace('\n', "") 使用 显然不起作用。我必须转义角色吗?怎么做 执行textFormat内容的最佳方式是什么。像这样 text = exec(textFormat) 谢谢 使用lambda: soup_find = lambda x,y: soup.find(x,y).text.replace('

我得到了下面的代码,应该用在另一个函数中,所以我想用一个变量传递它

soup.find("div", {"class" : "article-entry text"}).text.replace('\n', "")
使用

显然不起作用。我必须转义角色吗?怎么做

执行textFormat内容的最佳方式是什么。像这样

text = exec(textFormat)
谢谢

使用lambda:

soup_find = lambda x,y: soup.find(x,y).text.replace('\n', '')
soup_find("div", {"class" : "article-entry text"})
使用lambda:

soup_find = lambda x,y: soup.find(x,y).text.replace('\n', '')
soup_find("div", {"class" : "article-entry text"})

您需要转义字符串周围的引号。此外,您需要使用原始字符串来转义其他字符。所以…:

textFormat = r'soup.find("div", {"class" : "article-entry text"}).text.replace(\'\n\', "")' 
但是,如果您需要应用具有部分固定元素的函数,您应该只使用functools中的
partial
,而不是使用
eval

使用partial,您可以修复常见的参数,并在每次调用中传递其他不常见的参数。

您需要转义字符串周围的引号。此外,您需要使用原始字符串来转义其他字符。所以…:

textFormat = r'soup.find("div", {"class" : "article-entry text"}).text.replace(\'\n\', "")' 
但是,如果您需要应用具有部分固定元素的函数,您应该只使用functools中的
partial
,而不是使用
eval

使用partial,您可以修复常见参数,并在每次调用中传递其他不常见的参数。

您可以将其包装到另一个函数中,如下所示:

def textFormat():
    return soup.find("div", {"class" : "article-entry text"}).text.replace('\n', "")
text = textFormat()
然后像这样使用它:

def textFormat():
    return soup.find("div", {"class" : "article-entry text"}).text.replace('\n', "")
text = textFormat()
如果要将其传递给另一个函数:

def func(another_func):
    return another_func()

func(textFormat)

您可以将其包装到另一个函数中,如下所示:

def textFormat():
    return soup.find("div", {"class" : "article-entry text"}).text.replace('\n', "")
text = textFormat()
然后像这样使用它:

def textFormat():
    return soup.find("div", {"class" : "article-entry text"}).text.replace('\n', "")
text = textFormat()
如果要将其传递给另一个函数:

def func(another_func):
    return another_func()

func(textFormat)


详细解释你想用它存档什么可能是个好主意。我有一个大功能,除了这个表达式,它可以应用于不同的网站进行抓取。这就是为什么我想把所有的东西都放在一个函数中,只传递scraping语句,这对于每个网站都是不同的。那么你应该有一个基类,其中子类覆盖一个函数。但是我所说的函数大约有60行代码。我只做了两个小改动,所以覆盖整个函数似乎不是最好的主意,对吧?你不会覆盖整个函数。只是一个运行更改代码的类方法。详细解释您试图用它归档的内容可能是一个好主意。我得到了一个大函数,除了这个表达式,它可以应用于不同的网站进行抓取。这就是为什么我想把所有的东西都放在一个函数中,只传递scraping语句,这对于每个网站都是不同的。那么你应该有一个基类,其中子类覆盖一个函数。但是我所说的函数大约有60行代码。我只做了两个小改动,所以覆盖整个函数似乎不是最好的主意,对吧?你不会覆盖整个函数。只是一个类方法,可以运行更改的代码。谢谢。Lamdba似乎是在我学习python的旅程中经常出现的。有什么好的资源可以让初学者学习吗?很难理解它在做什么。@user2252633 lambda是有用的东西之一,如果你知道如何使用它的话)谢谢你。Lamdba似乎是在我学习python的旅程中经常出现的。有什么好的资源可以让初学者学习吗?很难理解它在做什么。@user2252633 lambda是有用的东西之一,如果你确实知道如何使用的话)问题是关于变量:)但是这个变量对你来说太有用了sure@JeffersonHoup
textFormat
是一个变量,您可以将它传递给另一个函数,如
func(textFormat)
是的,好的。在我的第一篇博文中,我的意思是:“我们正在创建一个函数”,因为表达式text=textFormat()将返回func的值,因为“()”。更新后(好的)NVMSoQuestion是关于变量:)的,但这个变量太适用于sure@JeffersonHoup
textFormat
是一个变量,您可以将它传递给另一个函数,如
func(textFormat)
是的,好的。在我的第一篇博文中,我的意思是:“我们正在创建一个函数”,因为表达式text=textFormat()将返回func的值,因为“()”。更新后(好的)nvm so