Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 使用函数内声明的值,函数外声明的值_Python_Function_Variables - Fatal编程技术网

Python 使用函数内声明的值,函数外声明的值

Python 使用函数内声明的值,函数外声明的值,python,function,variables,Python,Function,Variables,如果定义了如下函数: def plop(plop): ploplop = 1234 if plop == ploplop: print "I plopped" 如何将ploplop带到函数范围之外?返回它,并在另一侧捕获它 def plop(plop): ploplop = 1234 if plop == ploplop: print "I plopped" return plopplop someval = plo

如果定义了如下函数:

def plop(plop):
    ploplop = 1234
    if plop == ploplop:
         print "I plopped"

如何将ploplop带到函数范围之外?

返回它,并在另一侧捕获它

def plop(plop):
    ploplop = 1234
    if plop == ploplop:
         print "I plopped"
    return plopplop

someval = plop(1235)

你归还它,然后在另一边捕获它

def plop(plop):
    ploplop = 1234
    if plop == ploplop:
         print "I plopped"
    return plopplop

someval = plop(1235)
但全球变量几乎不应该被使用


但是全局变量几乎不应该被使用

因为你没有提供足够的信息来给出一个好的答案。这两个函数和变量之间的关系是什么

如果变量表示两个函数操作的某种持久状态,则您希望创建一个包含两个方法和一个成员变量的类:

class Plopper( object ):
    ploplop = 1234

    def plop( self, ploppity ):
        if ploppity == self.ploplop:
            print "I plopped"   # ew.

    def plop2( self, ploppity ):
        if ploppity == self.ploplop * 2:
            print "I plopped twice"

a = Plopper()

a.plop( 1234 )
a.plop2( 2468 )
如果变量控制函数的行为,并且您只需要确保它们是一致的,则将变量从方法中拉到全局(注意,对于contra user1320237,如果您只读取其值,则不需要将其声明为全局):


你没有提供足够的信息来回答问题。这两个函数和变量之间的关系是什么

如果变量表示两个函数操作的某种持久状态,则您希望创建一个包含两个方法和一个成员变量的类:

class Plopper( object ):
    ploplop = 1234

    def plop( self, ploppity ):
        if ploppity == self.ploplop:
            print "I plopped"   # ew.

    def plop2( self, ploppity ):
        if ploppity == self.ploplop * 2:
            print "I plopped twice"

a = Plopper()

a.plop( 1234 )
a.plop2( 2468 )
如果变量控制函数的行为,并且您只需要确保它们是一致的,则将变量从方法中拉到全局(注意,对于contra user1320237,如果您只读取其值,则不需要将其声明为全局):


另一种解决方案是向函数添加属性。(由于PLOP太多,我更改了函数名):


另一种解决方案是向函数添加属性。(由于PLOP太多,我更改了函数名):


我在我正在练习的代码上尝试了一种变体,但这并不是我所期望的结果。我想取一个在函数中声明的名为big的变量,并与另一个函数一起使用。好的。但是你仍然必须这样做,否则会导致代码的重大重写。我在我正在练习的代码上尝试了一种变体,但这并不是我所期望的结果。我想取一个在函数中声明的名为big的变量,并与另一个函数一起使用。好的。但您仍然必须这样做,否则将导致代码的重大重写。
def f(plop):
    f.ploplop = 1234
    if plop == f.ploplop:
         print "I plopped"
f(5)
print f.plopplop