Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855
Python学习 - 数据类型:https://blog.csdn.net/wanzijy/article/details/125341568
Python学习 - 流程控制:https://blog.csdn.net/wanzijy/article/details/125400906
Python学习 - 运算符(操作符):https://blog.csdn.net/wanzijy/article/details/125387919
Python学习 - 列表:https://blog.csdn.net/wanzijy/article/details/125457990
Python学习 - 字典:https://blog.csdn.net/wanzijy/article/details/125567225
Python学习 -元组和集合:https://blog.csdn.net/wanzijy/article/details/125577609
Python学习 - 函数(1):https://blog.csdn.net/wanzijy/article/details/125669084
Python学习 - 函数(2):https://blog.csdn.net/wanzijy/article/details/125739981
Python学习 - 类与对象:https://blog.csdn.net/wanzijy/article/details/125826952
Python学习 - 面向对象之封装:https://blog.csdn.net/wanzijy/article/details/125902925
Python学习 - 面向对象之继承:https://blog.csdn.net/wanzijy/article/details/125963829
Python学习 - 面向对象之多态:https://blog.csdn.net/wanzijy/article/details/127140632
Python - 文件操作(1):https://blog.csdn.net/wanzijy/article/details/127099071
Python - 文件操作(2):https://blog.csdn.net/wanzijy/article/details/127150189
Python学习 - 垃圾回收、特殊方法和模块:https://blog.csdn.net/wanzijy/article/details/126202999
Python学习 - 异常处理:https://blog.csdn.net/wanzijy/article/details/126803672
程序运行过程中产生的垃圾会影响到程序的运行性能
在程序中,没有被引用的对象就是垃圾
在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除
“ _del_() ” 是一个特殊方法,会在对象被垃圾回收前调用
也称为魔术方法
特殊方法都是使用 “ __ ” 开头和结尾的
特殊方法一般不需要我们手动调用,需要在一些特殊情况下自动执行
当我们打印对象时,实际上打印的是对象的特殊方法 “ _str_() ” 的返回值
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return 'Person [name=%s, age=%d]' %(self.name, self.age)
p1 = Person('张三', 18)
print(p1) # Person [name=张三, age=18]
print(str(p1)) # Person [name=张三, age=18]
_repr_()
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return 'Hello'
p1 = Person('张三', 18)
print(repr(p1)) # Hello
object._lt_(self, other) 小于
object._le_(self, other) 小于等于
object._eq_(self, other) 等于
object._ne_(self, other) 不等于
object._gt_(self, other) 大于
object._ge_(self, other) 大于等于
_gt_()
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __gt__(self, other):
return self.age > other.age
p1 = Person('张三', 18)
p2 = Person('李四', 28)
print(p1 > p2) # False
_bool_(self) 可以指定对象转换为布尔值的情况
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __bool__(self):
return True # 这里是什么值,调用bool()函数时就返回什么值
p1 = Person('张三', 18)
print(bool(p1)) # True
模块化:指将一个完整的程序分解维一个一个小的模块,通过将模块组合,来搭建出一个完整的程序
采用模块化之后,将程序分别编写到多个文件中
特点:
在Python中,一个 .py 文件就是一个模块
要想创建模块,实际上就是创建一个 Python 文件
模块名要符合标识符的规范
在模块中引入外部模块:
可以引入同一个模块多次,但是模块的实例只会创建一个
import 可以在程序的任意位置调用,但是一般情况下,import语句都会统一写在程序的开头
在每一个模块的内部都有一个 _name_ 属性,通过这个属性可以获取到模块的名字
_name_ 属性值为 _main_ 的模块是主模块,一个程序中只会有一个主模块
直接执行谁,谁就是主模块
包也是一个模块
当模块中的代码过多时,或者一个模块需要被分节为多个模块时,就需要使用到包
包是一个文件夹
包中必须要有一个 _init_.py 文件,这个文件可以包含有包中的主要内容
可以指定引入包中的某一个模块,语法为 import 包名.模块名
在创建包后,包里会有一个名为 _pycache_ 的文件
_pycache_ 是模块的缓存文件
之所以有这个文件,是因为 py 代码在执行前,需要被解析器先转换为机器码,然后再执行;所以我们在使用模块(包)时,也需要将模块的代码先转化为机器码然后再交由计算机执行。而为了提高程序运行的性能,python 会在编译过一次以后,将代码保存到一个缓存文件中,这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码
开箱即用
为了实现开箱即用的思想,Python 为我们提供了一个模块的标准库
在标准库中,有很多强大的模块我们可以直接使用,并且标准库会随 Python 的安装一同安装
sys 模块:
pprint 模块:
os模块: