相关疑难解决方法(0)

为什么全局变量是邪恶的?

我试图找到一个很好的来源,解释为什么global在python(以及一般的编程)中使用被认为是不好的做法.有人可以指点我或解释一下吗?

python side-effects global-variables

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

如何在Python中获取/设置函数的局部变量(从外部)?

如果我有一个函数(在Python 2.5.2中),如:

def sample_func():
    a = 78
    b = range(5)
    #c = a + b[2] - x
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 如何在使用函数内部的locals()的情况下从外部获取函数的局部变量(a,b)?(一种反思)
  2. 是否可以从外部设置局部变量(比如说x),以便注释行有效?(我知道这听起来很奇怪).

提前致谢.

编辑:

每个人都在要求用例.但这是一个奇怪的情况.(别怪我,我没有创造它).这是场景:

  1. 我有一个包含python函数的加密python源文件.
  2. AC扩展模块对其进行解密并在内存中构建该功能.
  3. 主python程序首先使用该加密文件位置调用C扩展.
  4. 然后主程序调用内存中构建的函数(通过C扩展)
  5. 但是主程序需要知道该函数的局部变量(不要问我为什么,这不是我)
  6. 对于某些(该死的)原因,主程序也需要设置一个变量(最奇怪)

python

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

Python - 函数输出?

我有一个非常基本的问题.

假设我调用一个函数,例如,

def foo():
    x = 'hello world'
Run Code Online (Sandbox Code Playgroud)

如何让函数以这样的方式返回x,我可以将它用作另一个函数的输入或者在程序体内使用变量?

当我使用return并在另一个函数中调用该变量时,我得到一个NameError.

python function

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

如何在执行函数后获取函数的局部值?

假设我有一个类似的功能f(a, b, c=None).目的是调用函数f(*args, **kwargs),然后构造一组新的args和kwargs,这样:

  1. 如果函数有默认值,我应该能够获取它们的值.例如,如果我称之为f(1, 2),我应该能够获得元组(1, 2, None)和/或字典{'c': None}.
  2. 如果在函数内部修改了任何参数的值,则获取新值.例如,如果我调用它f(1, 100000, 3)并且函数确实if b > 500: b = 5修改了局部变量,我应该能够获得元组(1, 5, 3).

这里的目的是创建一个完成函数工作的装饰器.原始函数充当为实际执行设置数据的前导码,装饰器完成作业.

编辑:我正在添加一个我正在尝试做的例子.它是一个为其他类创建代理的模块.


class Spam(object):
    """A fictional class that we'll make a proxy for"""
    def eggs(self, start, stop, step):
        """A fictional method"""
        return range(start, stop, step)

class ProxyForSpam(clsproxy.Proxy): proxy_for = Spam @clsproxy.signature_preamble def eggs(self, start, stop, step=1): start = max(0, start) stop = min(100, stop) …

Run Code Online (Sandbox Code Playgroud)

python

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

将用户input()从main()函数传递到下一个函数中的字符串中

我很难将在主函数中输入时提示的用户名传递到下一个函数中的字符串中。

我已经构建了一个函数程序,该函数程序将预定名称传递给下一个函数字符串消息。但是,既然我已经尝试提高它的速度并使用输入法,那么我就很难将它传递到下一个函数中的字符串消息中。

def main():
    someMessage = input("Enter your name:")
    return someMessage

def buildGreeting (someMessage):
    message = "Greetings " +input(someMessage)+ " you have been hacked! This message will self destruct in ten seconds!"
    return message
def printMessage(aMessage):
    print(aMessage)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

我要说“问候雷夫,您已被黑!此消息将在十秒钟内自毁!”

这是我目前的结果。它提示输入我的名字,然后再无其他操作。这是我运行程序时读取的内容。

输入您的名字:Leif

流程结束,退出代码为0

python python-3.x

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

为什么我的函数没有将值返回到全局变量?[蟒蛇]

为什么print(平方)返回0而不是100

我认为从函数返回后 - 变量的平方值将被赋值给具有相同名称的全局变量?

squared = 0
def square(n):
    """Returns the square of a number."""
    squared = n**2
    print "%d squared is %d." % (n, squared)
    return squared


square(10)
print(squared)
Run Code Online (Sandbox Code Playgroud)

收益:

在此输入图像描述

python variables scope return python-3.x

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

如何将函数中的变量传递给类python

我试图将一个变量从一个函数传递给一个类.示例代码如下:

def hello(var):

    return var

class test():
    def __init__(self):
        pass

    def value(self):
        print var

hello(var)
test = test()
test.value()
Run Code Online (Sandbox Code Playgroud)

我想var进入课堂test().

谢谢你的帮助.

python class

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