表达式-语句-函数-脚本(模块)-包
- 为什么要用模块:代码重用,命名空间,实现数据或服务共享
- 模块之间可能会相互联系,如果想在某一模块中调用另外模块的东西,需要引入代码
步骤:
找到模块文件-编译-运行模块文件
常用import和from
import为导入整个模块,from为导入模块中部分函数
import math
print(math.pi)
3.141592653589793
from math import pi
print(pi)
3.141592653589793
from math import*
print(pi)
3.141592653589793
- 命名空间的问题:有时不同模块中有相同名称的函数,这时为了避免重名,应该使用
from math import pi as api
- 当对模块进行搜索时,搜索优先级如下:程序主目录-环境变-标准库-扩展库
importlib的用法
import math
def pi():
print('pi()')
print('haha')
import importlib
importlib.reload(math)
math.pi
3.141592653589793
pi()
pi()
haha
包
- 包的概念其实就是引入目录,相当于一个文件夹
面向对象
- python是一个面向对象的编程:模块化编程(不用推倒重来)
也可以面向过程,面向函数。
面向对象的编程包括几个步骤:
OOA:分析对象(定义及关注的特征/行为)总结出关系(聚合/复合/依赖…)
OOD:类定义对象代码模板(蓝图)
OOP:创建内存对象(实例化)
初始化信息:
class person:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
person1 = person('lily',24,'girl')
print(person1.name)
lily
info的用法
class person:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def print_info(self):
print('this person:')
print('name:{}'.format(self.name))
print('age:{}'.format(self.age))
print('sex:{}'.format(self.sex))
person1 = person('lily',24,'girl')
person1.print_info()
this person:
name:lily
age:24
sex:girl
repr的用法:
class a:
def __init__(self,x,y=' '):
self.x = x
self.y = y
def __repr__(self):
return'{}at{}'.format(self.x,id(self))
>
a('bala')
balaat1799980838408