Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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:为什么returnstation不是&x27;不行吗?_Python - Fatal编程技术网

Python:为什么returnstation不是&x27;不行吗?

Python:为什么returnstation不是&x27;不行吗?,python,Python,我有一个很奇怪的问题,退货不起作用。 我的代码: def data_for_dump(action = None , type_of_dump = None, where_is_price = None, check = 'false', currentQty=None, unrealisedRoePcnt=None, last_price=None): if type_of_dump == 'control_panels': data = { '

我有一个很奇怪的问题,退货不起作用。 我的代码:

def data_for_dump(action = None , type_of_dump = None, where_is_price = None, check = 'false', currentQty=None, unrealisedRoePcnt=None, last_price=None):
    if type_of_dump == 'control_panels':
        data = {
            'Action':{
                'Action':action,
                'Where_is_price':where_is_price,
            }
        }

        #return data
    elif type_of_dump == 'get_position_info':
        data = {
            'Info':{
                'check':check,
                'currentQty':currentQty,
                'unrealisedRoePcnt':unrealisedRoePcnt,
                'last_price':last_price,
            }
        }
    return data
当我这样调用这个函数时

data_for__dump = data_for_dump(action = 'set_location',type_of_dump = 'control_panels', where_is_price = price_location)
它让我回想起:

<function data_for_dump at 0x7f409cdd7510>


这是什么鬼东西?

以下内容在我的电脑上运行良好

您的函数名为
data\u for\u dump
,但这就是您调用函数返回的变量的名称。然后,当您试图实际调用该函数以返回值时,您正在调用
数据\u以获取\uuuu dump
,额外的
\uuu
字符很重要

它以字符串形式返回函数。只需更正
\uu
以调用函数并切换变量名即可解决问题

def data_for_dump(action = None , type_of_dump = None, where_is_price = None, check = 'false', currentQty=None, unrealisedRoePcnt=None, last_price=None):
    if type_of_dump == 'control_panels':
        data = {
            'Action':{
                'Action':action,
                'Where_is_price':where_is_price
                }
            }

        #return data
    elif type_of_dump == 'get_position_info':
        data = {
            'Info':{
                'check':check,
                'currentQty':currentQty,
                'unrealisedRoePcnt':unrealisedRoePcnt,
                'last_price':last_price
            }
        }

    return data

def main():
    data = data_for_dump(action = 'set_location',type_of_dump = 'control_panels', where_is_price = 3)
    print(data)
# Yields {'Action': {'Action': 'set_location', 'Where_is_price': 3}}

main()

如果正在显示用于转储的数据,则应为。我想您可能会希望打印用于转储的数据

首先修复缩进。问题可能和缩进一样简单。在第一行之后,缩进所有其他行。您使用的变量看起来非常相似。您确定您正在使用2个下划线评估“data_for_dump”以检查函数“data_for_dump”的返回值吗?在我的计算机上运行良好,您是否打印了
data_for_dump
data_for_dump
?似乎在联机解释器上也运行良好:。我确信您正在为转储打印数据。你能检查一下吗?“它返回的是内存中存储该函数的位置。”不,不是,它返回的是函数对象本身。十六进制返回语句是寄存器中存储该对象的位置,否?在寄存器中?这是函数对象的标准输出,但这是因为正在打印函数对象。它不再是内存中的位置,而不是
class Foo:pass;f=Foo();打印(f)
f
Foo
对象,而不是内存中的位置。默认的字符串表示法只能打印thatAh OK。道歉。我认为hex值是对象的内存位置,就像Python基于的C语言一样。现在编辑问题…打印输出中的值确实表示堆上函数对象的内存地址,但这不是打印的内容。它正在打印函数本身。当您打印该函数时,您将获得该输出,因为这就是
\uuu repr\uu
钩子的实现方式。同样,它不是作为字符串的函数,而是函数本身。与
def func()过程相同;印刷(func);打印(键入(func))
。函数是Python中的一级对象。正如您所指出的,由于名称相似,OP似乎只是简单地打印了函数对象。