相关疑难解决方法(0)

Python中的switch语句的替换?

我想在Python中编写一个函数,它根据输入索引的值返回不同的固定值.

在其他语言中,我会使用switchcase声明,但Python似乎没有switch声明.在这种情况下,推荐的Python解决方案是什么?

python switch-statement

1719
推荐指数
32
解决办法
149万
查看次数

使用其名称(字符串)调用模块的函数

在Python程序中给定带有函数名称的字符串调用函数的最佳方法是什么.例如,假设我有一个模块foo,我有一个内容为的字符串"bar".什么是最好的打电话foo.bar()

我需要获取函数的返回值,这就是我不仅仅使用它的原因eval.我想通过使用eval定义一个返回该函数调用结果的临时函数来做到这一点,但我希望有更优雅的方法来做到这一点.

python object

1580
推荐指数
15
解决办法
63万
查看次数

如何创建可变数量的变量?

如何在Python中完成变量变量?

这是一个精心设计的手动条目,例如:变量变量

我听说这是一个坏主意,但它是Python中的一个安全漏洞.真的吗?

python variable-variables

315
推荐指数
13
解决办法
12万
查看次数

如何访问对应于该属性名称的给定字符串的对象属性

如何设置/获取t给定的属性值x.

class Test:
   def __init__(self):
       self.attr1 = 1
       self.attr2 = 2

t = Test()
x = "attr1"
Run Code Online (Sandbox Code Playgroud)

python attributes object

121
推荐指数
2
解决办法
7万
查看次数

Python:从字符串名称调用函数

我有一个str对象,例如:menu = 'install'.我想从这个字符串运行install方法.例如,当我打电话时,menu(some, arguments)它会打电话install(some, arguments).有没有办法做到这一点?

python

72
推荐指数
3
解决办法
10万
查看次数

如何在字符串中获取给定名称的变量的值?

为简单起见,这是我想要做的精简版:

def foo(a):
    # I want to print the value of the variable
    # the name of which is contained in a
Run Code Online (Sandbox Code Playgroud)

我知道如何在PHP中执行此操作:

function foo($a) {
    echo $$a;
}

global $string = "blah"; // might not need to be global but that's irrelevant
foo("string"); // prints "blah"
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

python string variables

66
推荐指数
4
解决办法
9万
查看次数

使用循环将值分配给列表中的变量

var_list = [one, two, three]
num = 1
for var in var_list:
    var = num
    num += 1
Run Code Online (Sandbox Code Playgroud)

上面给出了一个"一"不存在的错误.你不能这样分配吗?我想为列表中的每个var分配一个递增的数字.

python variables loops list

10
推荐指数
4
解决办法
6万
查看次数

在Python中通过变量名执行函数

我需要做的是循环大量不同的文件并(尝试)从文件中获取元数据.

我可以创建一个大的if ... elif ...并测试每个扩展,但我认为将扩展存储在变量中会更容易,检查是否存在具有该名称的函数,然后执行它.

这是我目前的解决方案,取自另一个stackoverflow线程:

try:
    getattr(modulename, funcname)(arg)
except AttributeError:
    print 'function not found "%s" (%s)' % (funcname, arg)
Run Code Online (Sandbox Code Playgroud)

这有一个问题:如果底层函数引发了AttributeError,则会将其注册为"找不到函数"错误.我可以添加try ...除了块到所有函数,但这也不是特别漂亮......

我正在寻找的更像是:

if function_exists(fun):
  execute_function(fun, arg)
Run Code Online (Sandbox Code Playgroud)

有这么简单的方法吗?

谢谢 :-)

python

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

如何从字符串列表中创建列表?

我有一个字符串列表,如:

names = ['apple','orange','banana'] 
Run Code Online (Sandbox Code Playgroud)

我想为列表中的每个元素创建一个列表,该列表将完全命名为字符串:

apple = []  
orange = []  
banana = []  
Run Code Online (Sandbox Code Playgroud)

我怎么能用Python做到这一点?

python

6
推荐指数
2
解决办法
894
查看次数

为什么在python中修改locals是个坏主意?

与此相关的答复这里.当地人的文件在这里.

文档提到字典不应该改变,不确定它意味着什么但是locals()适用于数据不会改变的实验室报告,例如在测量中?

python locals

5
推荐指数
3
解决办法
1897
查看次数

Python:从字符串访问变量

这可能是非常基本和简单的事情,我可能只是在谷歌搜索错误的条款,但希望有人在这里可以帮助我.(我仍然是编程的初学者,从这个问题可能很明显.)

我正在寻找一种从字符串中访问变量的方法.

像这样:

A1 = {}
B1 = {}
C1 = {}

mylist = ["A","B","C"]

for blurb in mylist:
    blurb1.foo()
Run Code Online (Sandbox Code Playgroud)

现在我在这种情况下使用if/elif-constructions:

if blurb == "A":
    A1.foo()
elif blurb == "B":
    B1.foo()
elif blurb == "C":
    C1.foo()
Run Code Online (Sandbox Code Playgroud)

这有效,但肯定有更优雅的方式吗?

谢谢你的帮助!Lastalda


编辑2:试图再次澄清(抱歉之前没有非常连贯,我很难理解这一点):

我想从字符串创建和访问对象.

因此,如果我有一个返回字符串的函数,我想创建一个使用此字符串作为列表名称的列表,然后使用该列表执行操作.

x = foo() # foo returns a string, e.g. "A"
# create list named whatever the value of x is
# in this case: 
A = []
Run Code Online (Sandbox Code Playgroud)

难道没有什么比为x的所有可能结果准备列表以及使用长elif结构或词典更优雅吗?在这种情况下我是否必须使用eval()?(我对使用eval()犹豫不决,因为它被认为是危险的.)

我希望现在终于清楚了.任何帮助仍然赞赏!

python

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