好的代码:高性能、封装性(可复用)、抽象、直白、美
python项目的组织结构:
包 —— 模块 —— 类(函数、变量)
关于导入包/模块 (导入文件只会被执行一次)
1,包和模块是不会被重复导入的
2,避免循环导入 (直接循环和间接循环) (嵌套引用有可能会导致间接循环)
3,可以嵌套引用/导入
4,导入别的模块或包时,等于执行此模块和包,或导致最终输出结果会增加变化(入口文件概念)
(1)包(文件夹)
一个普通的文件夹中必须有__init__.py (两个下划线) 这样命名的文件,python才会认为它是一个包 如下 __init__.py 它本身也是一个模块,可以为空,而它的模块名不是python2.__init__.py ,而是包名本身 python2
__init__.py 模块中的函数等程序自动运行,不需要手动执行(就像原程序初始化内容)
1、包里面类容的输出规定 如: 在__init__.py 模块中定义
__all__ = [ ]
当引用这个包时,输出的时此列表里面有的内容
2、批量引用 : 在__init__.py 模块中引用别的包的内容
则在此包中其余模块引用这些内容时,无需再引用,直接可使用定义(注意使用输出时的命名空间)
(2)模块
模块之间的引用 1、函数 import module_name (先定义,后使用)(只能引用模块,不能引用其中变量/方法)
(引用时命名空间需要写全)
在ppy4中定义a=3,在ppy5调用 如下
若ppy4与ppy5 不在同一个包(文件夹)里面,相应的名字加上包名即可(命名空间),如下(可以使用别名简化)
2、from module import a/def (变量/函数) (可以引用具体的变量或函数)
(函数导入只需要函数名;
引用时不需要全称命名空间)
也可以引用模块
python代码编译中随便换行会导致代码发生错误;此时就需要 \ 或者 ( ) 来换行 如下
3.dir()函数:
python内建的函数,用来列出模块中的函数、类和变量
如果给dir()函数提供一个模块名称,它返回该模块中的名称列表,如果不提供,则返回当前模块的名称列表
(3)函数
函数是一个容器,除了语言已有的函数,也可以应 def 自定义
函数是一块可重用的程序语句块,这块语句有个名字,然后可以在需要的时候使用
这个名字反复运行这个语句块。函数有可能需要输入,有可能会返回输出。
我们之前已经多次使用过了python中内建的函数,如:print、input
1、4种基本类型
1.无参数 无返回值
def abc():
print(“hello world”)
2.有参数 无返回值
def sum(x ,y):
s = x + y
print(s)
3.无参数 有返回值
def abc():
s = 34 + 12
return s
aa = abc()
print( aa )
4. 有参数 有返回值
def sum( x ,y )
s = x + y
return s
2、局部变量,全局变量
局部变量:在函数内定义的变量,只在当前函数有效,即使在函数外有同名的变量,他们也没有关系,
如果在函数内使用全局变量,并给它重新赋值,则需要global语句来实现
return语句:
用来从一个函数返回,即跳出函数,也可以使用return从函数返回一个值,并且这个值可以赋给其他变量。
默认值
网友评论