如何在终端运行时调用Python函数

2 投票
3 回答
12098 浏览
提问于 2025-04-16 06:49

假设我有一段代码,它做了一些复杂的事情并打印出结果,但为了方便说明,这里就假设它只做了这个:

class tagFinder:
    def descendants(context, tag):
        print context
        print tag

但是假如我在这个类里有多个函数,我该怎么运行这个函数呢?或者当我执行 python filename.py 时,我又该如何调用这个函数,并为它提供上下文和标签的输入呢?

3 个回答

0

你可以通过标准输入(stdin)传递一小段Python代码:

python <<< 'import filename; filename.tagFinder().descendants(None, "p")'

# The above is a bash-ism equivalent to:
echo 'import filename; filename.tagFinder().descendants(None, "p")' | python
2

这会导致一个错误

>>> class tagFinder:
...     def descendants(context, tag):
...         print context
...         print tag
... 
>>> 
>>> a = tagFinder()
>>> a.descendants('arg1', 'arg2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: descendants() takes exactly 2 arguments (3 given)
>>> 

你的方法的第一个参数应该是self。

class tagFinder:
    def descendants(self, context, tag):
        print context
        print tag

除非'context'是指self。在这种情况下,你只需要传一个参数。

>>> a.descendants('arg2')
4
~ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import filename
>>> a = tagFinder()
>>> a.descendants(arg1, arg2)
 # output

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

撰写回答