美文网首页
Python-小知识

Python-小知识

作者: 清新灬薄荷叶 | 来源:发表于2018-11-20 09:42 被阅读0次

概览

这篇文章主要用来存放我在工作中使用Python时的一些问题与收获

正文

  1. Python中不允许使用数字打头命名函数,变量;外部文件名尽量也不要用数字打头,因为这样就无法用import导入模块或者函数了。
  2. 直接赋值,浅拷贝,深度拷贝的区别:
  • 直接复制:指向同一个对象(id相同)
  • 浅拷贝:不同的对象(id不同),但是子对象指向同一对象(子对象id相同,比如说,字典里面的值为列表)
  • 深度拷贝: 不同的对象(id不同),子对象也是不同对象(子对象id也不同)
    更具体的参考:链接
  1. 在开发的时候,尽量在前期就做好文档管理(尤其是使用jupter notebook这种集成工具的时候),以便后期复用
    参考:在Jupyter Notebook构建规范和可复用的数据分析过程
  2. Python类型属于对象,不属于变量
    python类型属于对象,不属于变量
    Python的函数参数传递:传值?引用?
  3. python中的return语句会退出函数。但是放在try语句中时,是个例外。
    参考:python函数中return后的语句一定不会执行吗?
  4. python中直接用in运算符的时候,会优先调用集合类中的contains方法;如果没有,python会自动生成一个默认的方法,即在集合类中,对self使用for循环,针对目标项进行一次搜索。
  5. 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'
  6. 对象的三个基本要素:id, type, value
  7. is 和 == 的区别:
    is 是比较两者id是否相同
    == 是比较两者value是否相同
    只有小整数range(-5,257)与字符串类型, is结果为True。
    举例:
a = 1
b = 1 
a is b ----> True

参考:Python中is和==的区别

附:is None与== None的区别

  1. 使用集合的迭代器来代替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
  1. 构造方法
    构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
  2. 私有变量
    protected类型的变量:以单下划线开头的表示的变量,保护类型只能允许其本身与子类进行访问,使用“from M import”时,不会将以一个下划线开头的对象引入 。
    私有类型变量:以双下划线开头的表示的变量,只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量)
    参考:python 类的私有变量和私有方法)
  3. lt,le,eq,gt,ge的含义
    lt: less than--小于
    le: less and equal--小于等于
    eq: equal--等于
    gt: greater than--大于
    ge: greater and equal--大于等于
  4. print函数中end参数
    print()函数默认换行
    input:
    print('a',end='')
    print('b',end='')
    output:
    ab

15.类内init外定义类的变量
参考:Python中类内init外定义类的变量

未完待续,后期会不定期更新

相关文章

网友评论

      本文标题:Python-小知识

      本文链接:https://www.haomeiwen.com/subject/xpktqqtx.html