zoukankan      html  css  js  c++  java
  • 面试题-Python-语法考察

    1、以下2个参数是什么意思:*args,**kwargs?我们为什么要使用它们?

    答:*args表示任何多个无名参数,它是一个tuple;
      **kwargs表示关键字参数,它是一个dict。
      优势:传入参数个数可变。

    解析:
    1)python中,函数参数有5种:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
      可以同时调用这5种中的一种、多种或全部,但调用顺序必须和上述顺序一致,不可调换。
    2)必选参数:即 位置参数,一般的传参,都是该类型,如 f(x, y);
      默认参数:可以给参数指定默认值,不传入时启用默认值,如 f(x, y=2),
            需要注意的是,默认参数必须指向不变对象;
      可变参数:通过传入一个list或tuple,使得传入参数个数在 0~n 个之间可变,如 f(*args);
      命名关键字参数:通过限制关键字参数的名字,只接收指定的关键字参数,如 f(*, age, addr),
              命名关键字参数需要一个特殊分隔符**后面的参数被视为命名关键字参数,
              但是如果已经有可变参数,就不需要该特殊分隔符。
      关键字参数:通过传入一个dict,使得传入参数个数在  0~n 个之间可变,如 f(**kwargs)。
    关于函数参数更详细的解释,请看这里

    参考资料:

    http://www.cnblogs.com/fengmk2/archive/2008/04/21/1163766.html
    https://blog.csdn.net/wem603947175/article/details/81199498
    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000

    2、下面这些是什么意思:@classmethod,@staticmethod,@property

    答:装饰器,使用对象是在类中定义的函数。

      1)类方法@classmethod,只能访问类变量,不能访问实例变量,通过cls参数传递当前类对象,不需要实例化,直接【类名.方法名()】,可通过类对象和类对象实例访问。
      2)静态方法@staticmethod,名义归类管,实际跟类没关系,跟类关联截断了,是类下单独的函数,可以不传递任何参数,不需要实例化,直接【类名.方法名(),可通过类对象和类对象实例访问
      3)属性方法@property,将类方法变为属性,并赋值。

    参考资料:

    https://www.cnblogs.com/apollo1616/articles/9874055.html
    https://www.cnblogs.com/chengzi521/p/9638059.html

  • 相关阅读:
    Linux中的官方源、镜像源汇总
    提示"libc.so.6: version `GLIBC_2.14' not found"
    win8.1 安装msi软件出现 2503、2502
    平均负载(Load average)
    oracle 导入报错:field in data file exceeds maximum length
    一个命令的输出作为另外一个命令的输入
    Http 状态码
    Linux 命令总结
    ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法
    轻松应对IDC机房带宽突然暴涨问题
  • 原文地址:https://www.cnblogs.com/yjys/p/10700606.html
Copyright © 2011-2022 走看看