在 Python 中会用到对象之间比较,可以用 ==,也可以用 is 。但是它们的区别是什么呢?
is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。莱布尼茨说过:“世界上没有两片完全相同的叶子”,这个is正是这样的比较,比较是不是同一片叶子(即比较的id是否相同,这id类似于人的身份证标识)。
== 比较的是两个对象的内容是否相等,即内存地址可以不一样,内容一样就可以了。这里比较的并非是同一片叶子,可能叶子的种类或者脉络相同就可以了。默认会调用对象的 __eq__()方法。
https://www.cnblogs.com/kiko0o0/p/8135184.html
2、Python 格式化输出 —— %r 与 %s 的区别(__repr__ 与 __str__)
在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别。
- %s ⇒ str(),比较智能;
- %r ⇒ repr(),处理较为简单和直接;
https://blog.csdn.net/lanchunhui/article/details/51606720
3、python代码操作windows系统命令
import os
os.popen(cmd)
例子:
import os
mystr=os.popen("tasklist") #popen与system可以执行指令,popen可以接受返回对象
mystr=mystr.read() #读取输出
print("hello",mystr)
if mystr.find("QQ.exe") !=-1:
print("发现QQ")
else:
print("QQ已死有事请烧纸")
https://blog.csdn.net/houyanhua1/article/details/78140512
4、Flask-Mail 163邮箱:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')
https://www.cnblogs.com/wangyayun/p/6066637.html
5、py文件不要命名为包含test,python等词的文件,否则在import时容易出错。
https://www.cnblogs.com/JetpropelledSnake/p/8905734.html
7、package(包)中__init__.py的作用
1. Python中package的标识,不能删除
2. 定义__all__用来模糊导入
3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)
https://www.cnblogs.com/AlwinXu/p/5598543.html