函数中全局变量的操作

        在python中,在函数外面赋值的变量,被称为全局变量。

案例

# 定义两个全局变量
name = "cat"
game = ["LOL"]

# 修改全局变量的数据:全局变量是字符串
def text_str():
    '''修改字符串的数据'''
    # 修改全局变量的数据
    name = "mouse"
    
    print("name:", name)
    
text_str()
# 查看函数执行后的全局变量
print("name:", name)

结果:
name: mouse
cat

       在此案例中可以看到虽然函数中已经对全局变量name进行了修改,但是通过两个输出结果可以发现,在函数内部的输出结果为修改后的结果,而在函数执行完毕后的结果显示,全局变量name的值并没有被修改。

def test_str():
    '''修改字符串数据'''
    # 如果要修改全局变量的数据:声明可以修改
    global name

    # 修改全局变量的数据
    name= 'mouse'

    print("name:", name)


# 查看全局变量的数据
print(name)

test_str()

print(name)

结果:
cat
name: mouse
mouse

       在上述代码中我们添加一个global关键字,使得全局变量name的值在函数执行后发生了改变。(global关键字的作用是在函数中对一个全局变量进行声明操作,声明一个全局变量在此函数中是可以进行修改的)

       通过上面两个案例得知在普通函数中,可以访问全局变量的数据,但是一般不允许直接修改,可以通过global关键字引入之后进行修改。

# 修改全局变量的数据:变量是一个列表

def test():
    '''修改列表中的数据'''
    # 修改list数据
    game.append("PUBG")

    print("全局变量的数据game:", game)
    

print("函数执行前普通代码中全局变量game:", game)

test()

print("函数执行后普通代码中全局变量game:", game)


结果:

函数执行前普通代码中全局变量game: ["LOL"]

全局变量的数据game: ["LOL", "PUBG"]

函数执行后普通代码中全局变量game: ["LOL", "PUBG"]

在上述代码中可以发现,当全局变量是一个列表是,在函数中可以直接对列表中的内容进行修改。这是因为在此代码中只是对列表里面的值进行了修改,列表还是那个列表,列表的本身并没有被修改。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言,可以使用回调函数来代替全局变量的使用。回调函数是一种函数指针,它可以作为参数传递给其他函数,并在需要时被调用。 下面是一个示例,演示如何使用回调函数代替全局变量: ```c #include <stdio.h> // 回调函数类型 typedef void (*Callback)(int); // 函数接受回调函数作为参数 void performOperation(int value, Callback callback) { // 执行某些操作 printf("Performing operation with value: %d\n", value); // 调用回调函数 callback(value); } // 回调函数的实现 void callbackFunction(int value) { printf("Callback function called with value: %d\n", value); } int main() { int value = 10; // 调用函数并传递回调函数 performOperation(value, callbackFunction); return 0; } ``` 在上面的示例,我们定义了一个回调函数类型`Callback`,它接受一个整数参数。然后,我们定义了一个`performOperation`函数,它接受一个整数参数和一个回调函数作为参数。在`performOperation`函数,我们执行某些操作,并在操作完成后调用传递的回调函数。最后,在`main`函数,我们定义了一个整数变量`value`,并调用`performOperation`函数,传递`value`和回调函数`callbackFunction`作为参数。 当`performOperation`函数调用回调函数时,它会将传递给`performOperation`函数的整数值作为参数传递给回调函数。在回调函数`callbackFunction`,我们可以使用这个值进行进一步的操作。 通过使用回调函数,我们可以避免使用全局变量,并且可以更灵活地在不同的上下文使用相同的函数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值