相关疑难解决方法(0)

在Python中通过名称作为字符串调用类型

我知道使用globals(),locals()和getattr通过字符串来反馈Python中的内容(如本问题所示),但除非我遗漏了一些明显的东西,否则我似乎无法使用它来调用类型.

例如:

In [12]: locals()['int']
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)

e:\downloads_to_access\<ipython console> in <module>()

KeyError: 'int'

In [13]: globals()['int']
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)

e:\downloads_to_access\<ipython console> in <module>()

KeyError: 'int'

getattr(???, 'int')...
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方法是什么?

python getattr

5
推荐指数
2
解决办法
1948
查看次数

在Python中的事件队列周围传递对象

所以对于我正在处理的事情,我有一个相对复杂的设置,解释如下:

这是python。以及更多的粗略轮廓,但它涵盖了我需要的一切。尽管过程的下一个功能是相同的,但如果需要,请随时清理。

#timer event that runs every .1 second and processes events in a queue
some_event_timer():
    events.process_next()

class Event_queue:
    def __init__(self):
        self.events = []

    def push(self, event, parameters):
        self.events.insert(len(self.events), event, parameters)

    def process_next(self):
        event = self.pop(0)
        event[0](event[1])

class Foo:            
    def __init__(self, start_value = 1):
        self.value = start_value

    def update_value(self, multiple):
        self.value *= multiple

    def return_bah(self)
        return self.value + 3

class Bar:
    def __init__(self, number1, number2):
        self.init = number1
        self.add = number2

    def print_alt_value(self, in_value):
        print in_value * (self.init + self.add) …
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
1006
查看次数

在 Python 中使用 getattr 调用函数

我想编写一个最简单的程序,让我有机会使用套接字和序列化。

基本思想是将数据以函数名和要处理的数据传送到服务器端。然后反序列化服务器端发送的这些数据,以调用函数并执行某些操作。然后发回响应。

现在发送到服务器的数据 - 我需要调用的 func 名称,我需要使用该 func 处理的数据。

我使用 pickle.loads 来解包数据,现在我有一个 func 名称作为 str 和字典来处理。如果我将它硬编码 - 它会起作用。

我需要调用的 func 名称 - func。但我希望能够调用将从客户端发送的任何函数。

我知道我需要使用 getattr 才能做到这一点。但是如何?我在这里和其他网站上阅读了几个问题,但仍然不知道我需要做什么。

python sockets serialization

4
推荐指数
1
解决办法
2998
查看次数

通过用户输入的名称调用函数

是否可以在Objective C中按名称调用函数?例如,如果我知道函数的名称("foo"),有什么办法可以使用该名称获取指向函数的指针并调用它?我在这里偶然发现了类似的python问题,似乎有可能存在.我想将一个函数的名称作为用户的输入并调用该函数.此函数不必采用任何参数.

objective-c

3
推荐指数
1
解决办法
1642
查看次数

带参数的eval函数

我有三个功能:

def function_1(arg_1, arg_1, arg_1, arg_1):
    return sol_1
def function_2(arg_1, arg_2, arg_3, arg_4):
    return sol_2
def function_3(arg_1, arg_2, arg_3, arg_4):
    return sol_3
Run Code Online (Sandbox Code Playgroud)

我想用字符串调用它们:

myString = 'function_2'
eval(myString)
Run Code Online (Sandbox Code Playgroud)

但是我无法将参数传递给要传递给自定义定义的 eval 函数function_2,因为它们不是同质的 ( np.array, float, float, int)。

python eval

3
推荐指数
2
解决办法
1万
查看次数

Python将函数附加为点符号

def do_something(obj, func):
    obj.func()
Run Code Online (Sandbox Code Playgroud)

我的问题是我怎么叫funcobjfunc是一个功能obj.这甚至可能吗?

python

2
推荐指数
1
解决办法
659
查看次数

getattr出错

我打算用Python中函数名称的字符串调用模块的函数,但每当我在程序中调用我的类时,它都会给我这个错误:TypeError:必须使用foo实例作为第一个参数调用unbound方法bar() (没有得到任何东西)

有人能帮我吗

python

1
推荐指数
1
解决办法
1370
查看次数

字符串的Python调用函数

s = "func"
Run Code Online (Sandbox Code Playgroud)

现在假设有一个称为func的函数。当函数名以字符串形式给出时,如何在Python 2.7中调用func?

python python-2.7

1
推荐指数
1
解决办法
7383
查看次数

从字典中调用函数

我想从字典中调用函数。可能吗?如果是这样,我将如何去做呢?

def function():
    pass

my_dic = {
    'hello': function()
}
Run Code Online (Sandbox Code Playgroud)

python dictionary python-3.x

1
推荐指数
1
解决办法
475
查看次数

在构建时调用未指定的方法

注意:类似的问题已经存在,尽管是针对C#.

我们假设我的代码如下所示:

class SomeClass:

    def __init__(self):
         pass

    def do(self):
        print("a")

class SomeOtherClass:

    def __init__(self):
         pass

    def do(self):
        print("b")

class B:

    def __init__(self):
         self.SomeClass = SomeClass()  
         self.SomeOtherClass = SomeOtherClass()

def __main__():
    myclass = B()
    desired_class = str(input("The method of which class do you want to execute? "))
    myclass.desired_class.do() 
Run Code Online (Sandbox Code Playgroud)

我不会在建造时知道SomeClass将要调用什么方法.如果你有200种方法而且只有2种方法可供选择,那么if-then-else也不是很整洁.

如何在python中最有效地完成?

注意:method将始终是现有的方法SomeClass.

python methods class python-3.x

1
推荐指数
1
解决办法
22
查看次数