• 名称空间与作用域


    1. 定义域与名称空间解释

    input = 333  # 定义全局变量input,赋值333
    
    
    def func():  # 定义全局函数func
        input = 444  # 定义局部变量input,赋值444
    
    
    func()  # 调用全局函数func
    print(input)  # 打印全局变量input的值
    
    '''
    过程:
    定义全局变量input,并将其赋值为333,调用全局函数func(),执行函数func()
    定义全局函数func()内局部变量input,赋值444,无返回值,func()调用结束后,
    销毁func(),只剩全局变量input=333,print输出为333
    调用
    '''
    
    
    def func():  # 定义全局变量func()
        print(x)  # 输出x
    
    
    x = 111  # 全局变量x赋值为111
    func()  # 调用函数func()
    
    '''
    过程:
    定义全局函数func(),定义全局变量x,赋值为111,调用全局函数func(),函数定义输出x,但函数func()并无x,到全局名称空间去找,找到x=111
    输出x=111'''
    
    x = 1  # 定义全局变量x,并赋值为111
    
    
    def func():  # 定义全局函数func()
        print(x)  # 输出x
    
    
    def foo():  # 定义全局函数foo()
        x = 222  # 定义局部变量x,赋值为222
        func()  # 调用全局函数func()
    
    
    foo()  # 调用全局函数foo()
    
    '''
    过程:
    定义全局变量x=1,调用全局函数foo(),执行函数foo(),定义函数foo(),内部局部变量x=222,调用全局'''
    
    input = 111  # 定义全局变量input=111
    
    
    def f1():  # 定义全局函数f1()
        def f2():  # 定义局部函数f2()
            print(input)  # 局部函数f2输出input
    
        input = 222  # 全局函数f1定义input=222
        f2()  # 调用局部函数f2
    
    
    f1()  # 调用全局函数f1
    
    x = 111  # 定义全局变量x,赋值111
    
    
    def func():  # 定义全局函数func(),无形参
        print(x)  # 输出x
        x = 222  # 定义局部变量x,赋值222
    
    
    func()  # 调用函数func()
    
    x = 111  # 定义全局变量x,赋值111
    
    
    def foo():  # 定义全局函数foo(),无形参
        print(x, )  # 输出x
    
    
    def bar():  # 定义全局函数bar(),无形参
        print(x)  # 输出x
    
    
    foo()  # 调用全局函数foo()
    bar()  # 调用全局函数bar()
    
    x = 1  # 定义全局变量x,赋值1
    
    
    def func2():  # 定义全局函数func2(),无形参
        func1()  # 调用全局函数func1()
    
    
    x = 2  # 定义全局变量x,赋值2
    
    
    def func1():  # 定义全局函数func1(),无形参
        print(x)  # 输出x
    
    
    x = 3  # 定义全局变量x,赋值3
    func2()  # 调用全局函数func2()

    2. 实现登录成功记录下用户名

    # 如下全局变量记录了当前登录用户,编写登录功能,一旦用户登录成功,则将全局变量赋值为当前登录的用户名login_user=None
    login_user = None
    def login():
        account = input('请输入账号:')
        password = input('请输入密码:')
        if account == 'avery' and password == '123':
            print('登录成功')
            global login_user
            login_user = account
        else:
            print('登陆失败')
        return login_user
    
    
    print(login())

    3. 针对查询余额的功能,添加额外的逻辑:如果用户没有登录,则先执行登录功能

    login_user = None
    
    
    def login():
        account = input('请输入账号:')
        password = input('请输入密码:')
        if account == 'avery' and password == '123':
            print('登录成功')
            global login_user
            login_user = account
        else:
            print('登陆失败,请重新输入')
            return login_user
  • 相关阅读:
    Mysql:Group Replication & Replication
    使用winsw包装服务将nginx包装为Windows服务
    Nginx的一些常用配置
    在ASP.NET Core 2.0中使用Facebook进行身份验证
    展现层实现增删改查
    ABP创建应用服务
    ABP领域层定义仓储并实现
    ABP领域层创建实体
    通过模板创建一个ABP项目
    Android UI组件:布局管理器
  • 原文地址:https://www.cnblogs.com/avery-w/p/14193064.html
Copyright © 2020-2023  润新知