• Python 包、模块、函数、变量作用域


    Python 项目的组织结构
    - 包
    -- 模块
    --- 类
    ---- 函数、变量
     
    Python是利用包和模块来组织一个项目的。
     
    包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包,要想让个文件夹成为一个包,就必须在这个文件夹下增加个特定的文件 __init__.py
    __init__.py里面可以什么也不写,只是纯粹来标注这个文件夹是个包。 也可以在这个文件里编写代码。
    对于模块的名字:包名.模块名
    对于__init__.py模块的名字:直接是包名
     
     
    导入有两种方式:
     
    1、导入模块:import 模块名
    若在模块A中想用到B模块的变量b,那么在A中import B 之后,需要使用模块名来点出来变量名:B.b
    在模块A中:
    import B
    print(B.b)
     
    2、from 模块名 import 变量名,函数
      在模块A中:
      from B import b  
     可直接使用 print(b),而不用使用前缀
     
    import导入的是模块,from import导入的是具体的变量或者函数,因此使用from import 就不用使用前缀了。
    但是!也可以使用 from 包名  import 模块名   然后在A模块中使用 B.b 。。。。
    比如:B模块在C包中,C包和A模块是平级的
    在A模块中使用:
    from C import B
    print(B.b)
     
    若是B中有大量的变量需要导入,那么可以用  *  号来指代。
    但是如此,便将B中的所有都导入A中了。
    其实可以在B中进行指定,哪些变量可以通过 * 号来进行导入到其他文件
    在B文件的顶部,使用 __ALL__=['变量名a',‘变量名b’] ,这样在A文件中使用 from B import * 的时候,只会将B中的 a b 两个变量导入A
     
    其实吧,也可是使用 from B import a,b,c  但是呢,Python的规范是一行字符个数不超过80,若是需要导入变量过多就要换行
    Python代码换行问题:
    方式一:在需要换行的结尾加上反斜杠     然后换行
    方式二:在被导入变量的外部加上括号来换行 
     
     
    __inti__.py的作用:
    基本作用 :import 导入包的时候,python会自动运行__init__.py文件
    应用场景:做一些初始化工作
    不论是导入包还是导入包中某个模块的变量,都会自动于运行init文件
     
    init 文件中也可使用 __all__ = ['模块名'],来指定当此包之外的某模块使用 from 包名 import * 的时候,会import 进 __all__指定的模块

     

    函数的参数:

     
    1.必须参数:这是指代的是函数定义时候的参数顺序和个数。
     
    defget_result(x,y): 
    result = x + y
    return result

    result = get_result(1,2#这1 , 2 分别给 x , y 就是必须参数
    print(result)
     
    2.关键字参数:这在于函数的调用,而不是函数的定义。
    defget_result(x,y):
    result = x + y
    return result

    result = get_result(1,2) #需考虑赋值顺序
    print(result)

    result2 = get_result(y=2, x=1)  # 这就是关键字参数,在于函数调用时候,不用考虑赋值顺序。
    print(result2)
     
    以上两个参数类型,只是在函数调用时候的不同,而参数定义是一样的。



  • 相关阅读:
    HDU
    HDU
    A. Reorder the Array
    A. New Building for SIS Codeforce
    HUD Is It A Tree?!!!!!)
    博客园申请博客批准
    一起学CC3200之CRC校验
    新安装CCS 编译问题Process_begin :createProcess
    一起学CC3200之开发环境简介(2)烧录程序
    新安装CCS 后编译出现问题:gmake:No rule to make target clean
  • 原文地址:https://www.cnblogs.com/wfy-it/p/b340b2fca4afbb4e9e8f43ebfb352e6d.html
Copyright © 2020-2023  润新知