IT入门 > 面试题 > python题库 > Python语言特性 >
  • Python的函数参数传递

    2019/07/25 点击:58762

    " 看两个例子: a = 1def fun(a): a = 2fun(a)print a # 1 a = []def fun(a): a.append(1)fun(a)print a # [1] 所有的变量都可以理解是内存中一个对象的“引用”,或者,也可以看似c中void*的感觉。 通过`id`来看引

  • Python中的元类(metaclass)

    2019/07/25 点击:22457

    这个非常的不常用,但是像ORM这种复杂的结构还是会需要的,详情请看:http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python

  • @staticmethod和@classmethod

    2019/07/25 点击:3042

    " Python其实有3个方法,即静态方法(staticmethod),类方法(classmethod)和实例方法,如下: def foo(x): print ""executing foo(%s)""%(x)class A(object): def foo(self,x): print ""executing foo(%s,%s)""%(self,x) @classmethod def cla

  • 类变量和实例变量

    2019/07/25 点击:4460

    是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的)。例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例。 **实例变量:** 实例化之

  • Python自省

    2019/07/25 点击:6049

    这个也是python彪悍的特性. 自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型.简单一句就是运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance(). a = [1,2

  • 字典推导式

    2019/07/25 点击:2647

    可能你见过列表推导时,却没有见过字典推导式,在2.7中才加入的: d = {key: value for (key, value) in iterable}

  • Python中单下划线和双下划线

    2019/07/25 点击:7500

    " class MyClass(): def __init__(self): self.__superprivate = ""Hello"" self._semiprivate = "", world!"" mc = MyClass() print mc.__superprivateTraceback (most recent call last): File "" "", line 1, in AttributeError: myClass instance has no a

  • 字符串格式化:%和.format

    2019/07/25 点击:1784

    " .format在许多方面看起来更便利.对于`%`最烦人的是它无法同时传递一个变量和元组.你可能会想下面的代码不会有什么问题: ""hi there %s"" % name 但是,如果name恰好是(1,2,3),它将会抛出一个

  • 迭代器和生成器

    2019/07/25 点击:6019

    " 这个是stackoverflow里python排名第一的问题,值得一看: http://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do-in-python 这是中文版: http://taizilongxu.gitbooks.io/stackoverflow-about-python/content/1/READ

  • *args and **kwargs

    2019/07/25 点击:3753

    用`*args`和`**kwargs`只是为了方便并没有强制使用它们.当你不确定你的函数里将要传递多少参数时你可以用`*args`.例如,它可以传递任意数量的参数: def print_everything(*args): for count, thing in e