zoukankan      html  css  js  c++  java
  • python小记

    一、enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
    例,

    1 lst = ["a", "b", "c"]
    2 for i, element in enumerate(lst):
    3         print(i, lst[i])
    4 输出:
    5 0 a
    6 1 b
    7 2 c



    二、python字典取值:字典中取值大家很容易想到用dict[key],这个有什么难的,确实一般取值是这样的,但是你有没有想过若你取的值不存在,就会发生异常,风险很大.(良好的代码,一定是要考虑健壮性,切记)。因为试图通过索引的方式去取值,比如dict[key],当key不是字典dict的键,会引起异常,有没有什么两全的办法有值的时候取值,没有值的时候即使我取不到也不会发生异常。
    答案是有的,python早就给你准备好了.我们用dict.get()

    建议:尽量用dict.get()来代替dict[key]


    三、如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个生成器函数,打印看一下.
    例,

    1 def fac2(n):
    2     a, b=1, 1
    3     while a<n:
    4         yield a
    5         a, b=b, a+b
    6 
    7 for i, f in enumerate(fac2(10)):
    8     print(f)




    四、访问限制:如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。

     1 class Person(object):
     2     def __init__(self, name):
     3         self.name = name
     4         self._title = "Mr"
     5         self.__job = "Student"#这里就变成了隐藏属性
     6     
     7     def get_job(self):
     8         return self.__job
     9 
    10 p = Person("yxy")
    11 p.name="adai"
    12 print(p.name)
    13 print(p._title)
    14 print(p.__job)#这里报错
    15 print(p.get_job())#这里通过get_job()方法来获取隐藏属性__job


    注意:
    ①需要注意的是,在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。

    ②有些时候,你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。如果外部代码想要获取"__job"属性时,可以添加方法,用方法来获取所需的隐藏属性!

    ③p.__job="teacher",向这种更需要注意,虽然表面上看着可以成功执行(可以成功修改__job),但这里修改的__job并不是隐藏的属性__job!


    五、

    1 & 和 &&区别: & :无论左边结果是什么,右边都参与运算。
    2 &&:短路与,如果左边为false,那么右边不参数与运算。
    3 
    4 | 和|| 区别:|:两边都运算。
    5 ||:短路或,如果左边为true,那么右边不参与运算。



    六、Python中__new__与__init__方法的区别:

    __new__:它是创建对象时调用,会返回当前对象的一个实例,可以用__new__来实现单例
    __init__:它是创建对象后调用,对当前对象的一些实例初始化,无返回值

    七、
    /etc/skel目录是用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。


    八、Python 使用了引用计数这一简单技术来跟踪和回收垃圾。
    在 Python 内部记录着所有使用中的对象各有多少引用。
    一个内部跟踪变量,称为一个引用计数器。
    当对象被创建时, 就创建了一个引用计数, 当这个对象不再需要时, 也就是说, 这个对象的引用计数变为0 时, 它被垃圾回收。但是回收不是"立即"的, 由解释器在适当的时机,将垃圾对象占用的内存空间回收。

    1 a = 10 #增加引用
    2 b = a #增加一个引用
    3 c = [b] #又增加一个引用
    4 
    5 del a #减少引用
    6 b = 20 #减少引用
    7 c[0] = 1 #减少引用



    九、Python 单下划线、双下划线、头尾双下划线说明:

        __foo__: 定义的是特列方法,类似 __init__() 之类的。

        _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

        __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。

  • 相关阅读:
    网络服务管理手册
    Oracle随机函数的取法
    oracle 分析函数over
    RMAN故障解决——RMAN用户手册
    SQL*PLUS命令的使用大全
    如何监测一个PLSQL过程的运行情况(三)
    oracle for in loop 两例
    自定义组件——按钮(转)
    新人报到安家!
    Delphi中生成控件的两种方法
  • 原文地址:https://www.cnblogs.com/Downtime/p/8552241.html
Copyright © 2011-2022 走看看