概览
这篇文章主要用来存放我在工作中使用Python时的一些问题与收获
正文
- Python中不允许使用数字打头命名函数,变量;外部文件名尽量也不要用数字打头,因为这样就无法用import导入模块或者函数了。
- 直接赋值,浅拷贝,深度拷贝的区别:
- 直接复制:指向同一个对象(id相同)
- 浅拷贝:不同的对象(id不同),但是子对象指向同一对象(子对象id相同,比如说,字典里面的值为列表)
- 深度拷贝: 不同的对象(id不同),子对象也是不同对象(子对象id也不同)
更具体的参考:链接
- 在开发的时候,尽量在前期就做好文档管理(尤其是使用jupter notebook这种集成工具的时候),以便后期复用
参考:在Jupyter Notebook构建规范和可复用的数据分析过程 - Python类型属于对象,不属于变量
python类型属于对象,不属于变量
Python的函数参数传递:传值?引用? - python中的return语句会退出函数。但是放在try语句中时,是个例外。
参考:python函数中return后的语句一定不会执行吗? - python中直接用in运算符的时候,会优先调用集合类中的contains方法;如果没有,python会自动生成一个默认的方法,即在集合类中,对self使用for循环,针对目标项进行一次搜索。
- type(a)b:这个的意思是将b转化为a的类型
举例:
input:a = '1', b = 2; type(a)(b)
mid: type(a) is str; type(a)(b) = str(b)
output; '2' - 对象的三个基本要素:id, type, value
- is 和 == 的区别:
is 是比较两者id是否相同
== 是比较两者value是否相同
只有小整数range(-5,257)与字符串类型, is结果为True。
举例:
a = 1
b = 1
a is b ----> True
参考:Python中is和==的区别
附:is None与== None的区别
- 使用集合的迭代器来代替for循环:
test1 = [1,2,3]
# For loop
for i in test1:
print(i)
# Iterator
iter_object = iter(test1)
try:
while True:
print(next(iter_object))
except StopIteration:
pass
- 构造方法
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。 - 私有变量
protected类型的变量:以单下划线开头的表示的变量,保护类型只能允许其本身与子类进行访问,使用“from M import”时,不会将以一个下划线开头的对象引入 。
私有类型变量:以双下划线开头的表示的变量,只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量)
参考:python 类的私有变量和私有方法)
- lt,le,eq,gt,ge的含义
lt: less than--小于
le: less and equal--小于等于
eq: equal--等于
gt: greater than--大于
ge: greater and equal--大于等于 - print函数中end参数
print()函数默认换行
input:
print('a',end='')
print('b',end='')
output:
ab
15.类内init外定义类的变量
参考:Python中类内init外定义类的变量
未完待续,后期会不定期更新