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.必须参数:这是指代的是函数定义时候的参数顺序和个数。
def
get_result
(
x
,
y
):
result
=
x
+
y
return
result
result
=
get_result(
1
,
2
)
#这1 , 2 分别给 x , y 就是必须参数
(result)
2.关键字参数:这在于函数的调用,而不是函数的定义。
def
get_result
(
x
,
y
):
result
=
x
+
y
return
result
result
=
get_result(
1
,
2
) #需考虑赋值顺序
(result)
result2
=
get_result(
y
=
2
,
x
=
1
) # 这就是关键字参数,在于函数调用时候,不用考虑赋值顺序。
(result2)
以上两个参数类型,只是在函数调用时候的不同,而参数定义是一样的。