zoukankan      html  css  js  c++  java
  • 7月16日每日一答

    1 一行代码实现1-100的求和,一行代码实现1-100奇数求和,一行代码实现1-100偶数求和。

    2 字符串的拼接可以使用+和join完成,两者有什么区别?

    + 每次都是生成新的对象,join是直接字符串后面拼接,效率上join更高

    3 python的自省是指的什么?

    在日常生活中,自省(introspection)是一种自我检查行为。

    计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什么。自省向程序员提供了极大的灵活性和控制力

    说的更简单直白一点:自省就是面向对象的语言所写的程序在运行时,能够知道对象的类型。简单一句就是,运行时能够获知对象的类型

    例如python, buby, object-C, c++都有自省的能力,这里面的c++的自省的能力最弱,只能够知道是什么类型,而像python可以知道是什么类型,还有什么属性。

    最好的理解自省就是通过例子: Type introspection  这里是各种编程语言中自省(introspection)的例子(这个链接里的例子很重要,也许你很难通过叙述理解什么是introspection,但是通过这些例子,一下子你就可以理解了

    回到Python,Python中比较常见的自省(introspection)机制(函数用法)有: dir(),type(), hasattr(), isinstance(),通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。

     dir()

     dir() 函数可能是 Python 自省机制中最著名的部分了。它返回传递给它的任何对象的属性名称经过排序的列表。如果不指定对象,则 dir() 返回当前作用域中的名称。让我们将 dir() 函数应用于 keyword 模块,并观察它揭示了什么:

    >>> import keyword
    >>> dir(keyword)
    ['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'iskeyword', 'kwlist', 'main']


     type()
     type() 函数有助于我们确定对象是字符串还是整数,或是其它类型的对象。它通过返回类型对象来做到这一点,可以将这个类型对象与 types 模块中定义的类型相比较:

    >>> type(42)
    <class 'int'>
    >>> type([])
    <class 'list'>


      hasattr()

     对象拥有属性,并且 dir() 函数会返回这些属性的列表。但是,有时我们只想测试一个或多个属性是否存在。如果对象具有我们正在考虑的属性,那么通常希望只检索该属性。这个任务可以由 hasattr() 和 getattr() 函数来完成.

    >>> hasattr(id, '__doc__')
    True

     
     isinstance() 
     可以使用 isinstance() 函数测试对象,以确定它是否是某个特定类型或定制类的实例:

    >>> isinstance("python", str)
    True
  • 相关阅读:
    Populating Next Right Pointers in Each Node
    Reverse Linked List
    Reverse Linked List II
    Triangle
    Surrounded Regions
    Effective_STL 学习笔记(十九) 了解相等和等价的区别
    Effective_STL 学习笔记(十八) 避免使用 vector<bool>
    Effective_STL 学习笔记(十七) 使用 “交换技巧” 来修整过剩的容量
    Effective_C++ (条款02) 尽量以 const,enum,inline替换 #define
    Effective_C++ (条款01) 视 C++ 为一个语言联邦
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/11193223.html
Copyright © 2011-2022 走看看