如何使用python中的方法参数定义函数

时间:2017-12-13 15:36:18

标签: python-2.7

我正在使用python 2.我导入了pyspec库。说'scan'是实例类型数据。然后我可以绘制:

figure()
plot(scan.A,scan.B)
show()

此代码图将'xvar'作为x变量,'yvar'作为y变量。在'扫描'中,有许多变量(比如A,B,C等)。

我尝试定义一个函数:

def plotscan(x,y):
    figure()
    plot(scan.x,scan.y)
    show()

plotscan(A,B)

但是,此代码会显示错误消息:名称“A”未定义

如何修复此功能?

1 个答案:

答案 0 :(得分:0)

我认为您的目标是,当您致电scan.x时,函数x中的内容为A,scan.A变为scan.x

你这样做的方式不起作用,因为口译员不知道A和B是什么,scan.< value of x >只会被getattr()评估为class Scan(object): A = 1 B = 12 C = 20 scan = Scan def plotscan(x,y): _x = getattr(scan, x) _y = getattr(scan, y) print _x, _y plotscan("A", "B") 而不是&#39}有意义。

解决方案是使用plot(请参阅https://docs.python.org/2/library/functions.html

print

(为了便于说明,我已将plotscan(x, y)的电话替换为getattr(),因此未安装特定图书馆的所有人​​都可以尝试这个示例。

在这里,您将A和B作为字符串传递,在scan内部,函数a b x 23 s 34 v 15 g 05 k 69 返回对象x y z 1 0 10 2 10 20 3 20 30 4 30 40 5 40 50 6 50 60 7 60 70 的属性值,该对象的名称由第二个参数。