zoukankan      html  css  js  c++  java
  • python 笔记碎片

    1. import的使用

      import 导入一个包时,实际导入的是 __init__.py

      __all__ 控制的是 import * 中的 * 这个东西,其他的限制不了

      a.py和b.py循环导入时,不要再模块的开头导入,而是在使用到的代码前一行导入(这个使用只是能解决问题,但不提倡用,写之前更应该规划好逻辑,不要出现循环导入的情况)

    3. 打印对象的所有属性值

    "
    ".join(["%s: %s" % item for item in obj.__dict__.items()])

    4. python的内存回收

      python在内存中每个对象的引用计数,如果计数为0,则回收

      引用循环情况: 对象 Test1 和 Test2,符合Test1.x = Test2, Test2.x = Test1,如果Test1和Test2没有被其他代码引用,则在循环查找时会删除

      python中使用了某些启发式算法来加速回收,越晚创建的对象更有可能被删除,垃圾回收器会分配它们所属的代,每个对象都会被分配一个,更年轻的优先级高

    5. __class__  (知识点是 “类的内存地址” 和 “实例的内存地址”)

      实例调用__class__,属性会指向该实例对应的类,然后可以去调用类其他的属性,毕竟类的属性还是由类调用看起来更清晰

      栗子:

        self.__class__.__name__    用 __class__ 将 self 的实例变量指向类

    6. 一个小技巧

      python处理列表,循环列表的过程中,需要将一个值给删掉,此时可以使用倒叙循环,就不会由下标越界的情况,省去处理下标前移的工作

      for x in test_list[::-1]

        pass

  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/SBJBA/p/11750136.html
Copyright © 2011-2022 走看看