#!这个符号叫做shebang或者sha-bang
Shebang通常在Unix操作系统脚本的第一行开头,代表这个执行程序的解释器
使用方式
1、查询python3解释器所在路径
which python3
2、在pyhon文件第一行增加
#!/usr/bin/python3
3、修改文件权限,增加可执行权限
chmod +x 文件名.py
4、在需要执行时候,可以直接在命令行 ./文件名.py
以后执行的时候可以省略python3,了解即可
python中有两种多值参数
在调用带有多值参数的函数时,如果希望:
args
kwargs
就可以使用 拆包,简化参数的传递,拆包 的方式是:
*
*
def demo(num, *args, **kwargs): print(num) print(args) print(kwargs) demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)
def demo(*args, **kwargs): print(args) print(kwargs) # 需要将一个元组变量/字典变量传递给函数对应的参数 gl_nums = (1, 2, 3) gl_xiaoming = {"name": "小明", "age": 18} # 会把 num_tuple 和 xiaoming 作为元组传递个 args # demo(gl_nums, gl_xiaoming) demo(*gl_nums, **gl_xiaoming)
所有__方法名__
格式的都是python的内置方法。通过dir() ,查看该对象的所有属性和方法
__del__
相当于析构函数
__str__
相当于java的tostring
__new__
方法,是一个由object基类提供的内置的静态方法,主要作用有两个
在内存中为对象分配空间
返回对象的引用,即调用init方法
重写该方法,一定要return super().__new__(cls)
__name__
属性。如果是被其他文件导入,__name__
就是模块名,如果在当前执行的程序里,__name__
=__main__
is判断是否是同一个引用,==判断变量的值是否相等
在定义属性或者方法时,在属性或者方法名前面加两个下划线,就代表私有,比如__age
但是如果想外面访问,可以直接类名.__
属性访问,比如.Women__age
print(类.__mro__
)查看该类的继承顺序,以及属性调用顺序
要在外界使用包中的模块,创建包时会自动创建一个__init__.py
在该文件中要指明对外提供的模块
# 从当前目录导入模块列表 from . import 模块1 from . import 模块2
python
解释器在导入模块时,会:
搜索当前目录指定模块名的文件,如果有就直接导入
如果没有,再搜索系统目录
python
中每个模块都有一个内置属性__file__
可以查看模块的完整路径
# 1. 打开文件 file_read = open("README") file_write = open("README[复件]", "w") # 2. 读取并写入文件 text = file_read.read() file_write.write(text) # 3. 关闭文件 file_read.close() file_write.close()
# 1. 打开文件 file_read = open("README") file_write = open("README[复件]", "w") # 2. 读取并写入文件 while True: # 每次读取一行 text = file_read.readline() # 判断是否读取到内容 if not text: break file_write.write(text) # 3. 关闭文件 file_read.close() file_write.close()
ASCII
编码UTF-8
编码(UTF-8
支持中文)