zoukankan      html  css  js  c++  java
  • python开发中常见的小坑

    (1)可变参数类型作为函数参数默认值,函数参数默认值的设置在Python中只会被执行一次,也就是定义该函数的时候。

    解决办法,设置为None,然后判断

    (2)Python中的变量名解析遵循所谓的LEGB原则,也就是“L:本地作用域;E:上一层结构中def或lambda的本地作用域;G:全局作用域;B:内置作用域”(Local,Enclosing,Global,Builtin),按顺序查找。

    上述错误的出现,是因为当你在某个作用域内为变量赋值时,该变量被Python解释器自动视作该作用域的本地变量,并会取代任何上一层作用域中相同名称的变量。

    (3)复制、浅拷贝、深拷贝

    复制:直接赋值,传递对象的引用而已,原始对象改变,被赋值的对象也会做相同的改变

    浅拷贝(切片操作、工厂函数、copy函数):没有拷贝子对象,所以原始数据改变,子对象会改变

    深拷贝:包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

    (4)模块依赖。

    a.py文件中的代码:

    1
    2
    3
    4
    import b
    def f():
      return b.x
    print f()

    b.py文件中的代码:

    1
    2
    3
    4
    import a
    = 1
    def g():
      print a.f()

    import a不会有问题,但是import b就会有问题了

    # module_x.py
    def inc_count():
        import module_y
        module_y.count += 1
     
     
     
     
  • 相关阅读:
    git
    读后感
    总结
    封装,策略,Asp换脸
    典型用户
    第四次作业
    第三次作业
    计算
    感悟
    对git的认识
  • 原文地址:https://www.cnblogs.com/jiangjing/p/5428987.html
Copyright © 2011-2022 走看看