精华内容
下载资源
问答
  • python type函数_Python type()函数

    千次阅读 2020-07-14 11:44:52
    python type函数 Python type()函数 (Python type() Function) Python has a lot of buit-in function. The type() function is used to get the type of an object. Python具有很多内置功能。 type()函数用于获取...

    python type函数

    Python type()函数 (Python type() Function)

    Python has a lot of buit-in function. The type() function is used to get the type of an object.

    Python具有很多内置功能。 type()函数用于获取对象的类型。

    Python type() function syntax is:

    Python type()函数语法为:

    type(object)
    
    type(name, bases, dict)
    • When a single argument is passed to the type() function, it returns the type of the object. Its value is the same as the object.__class__ instance variable.

      当将单个参数传递给type()函数时,它将返回对象的类型。 它的值与object .__ class__实例变量相同。
    • When three arguments are passed, it returns a new type object. It’s used to create a class dynamically on the fly.
      1. The “name” string becomes the class name. Its same as the __name__ attribute of a class.
      2. The “bases” tuple specifies the base classes. Its same as the __bases__ attribute of the class.
      3. The “dict” dictionary is used to create the class body. Its same as the __dict__ attribute of the class.

      当传递三个参数时,它将返回一个新的类型对象。 它用于动态动态创建类。
      1. “名称”字符串成为类名称。 与类的__name__属性相同。
      2. “基”元组指定基类。 与类的__bases__属性相同。
      3. “ dict”字典用于创建类主体。 与类的__dict__属性相同。

    Python type()示例 (Python type() Examples)

    Let’s look into some examples of using the type() function.

    让我们看一些使用type()函数的示例。

    1.检查对象的类型 (1. Checking the type of an object)

    x = 10
    print(type(x))
    
    s = 'abc'
    print(type(s))
    
    from collections import OrderedDict
    
    od = OrderedDict()
    print(type(od))
    
    
    class Data:
        pass
    
    
    d = Data()
    print(type(d))

    Output:

    输出:

    <class 'int'>
    <class 'str'>
    <class 'collections.OrderedDict'>
    <class '__main__.Data'>

    Notice that the type() function returns the type of the object with the module name. Since our Python script doesn’t have a module, it’s module becomes __main__.

    注意,type()函数返回带有模块名称的对象的类型。 由于我们的Python脚本没有模块,因此该模块成为__main__。

    2.创建动态类 (2. Creating Dynamic Classes)

    Let’s say we have following classes.

    假设我们有以下课程。

    class Data:
        """Data Class"""
        d_id = 10
    
    
    class SubData(Data):
        """SubData Class"""
        sd_id = 20

    Let’s print some of the properties of these classes.

    让我们打印这些类的一些属性。

    print(Data.__class__)
    print(Data.__bases__)
    print(Data.__dict__)
    print(Data.__doc__)
    
    print(SubData.__class__)
    print(SubData.__bases__)
    print(SubData.__dict__)
    print(SubData.__doc__)

    Output:

    输出:

    <class 'type'>
    (<class 'object'>,)
    {'__module__': '__main__', '__doc__': 'Data Class', 'd_id': 10, '__dict__': <attribute '__dict__' of 'Data' objects>, '__weakref__': <attribute '__weakref__' of 'Data' objects>}
    Data Class
    
    <class 'type'>
    (<class '__main__.Data'>,)
    {'__module__': '__main__', '__doc__': 'SubData Class', 'sd_id': 20}
    SubData Class

    We can create similar classes using the type() function.

    我们可以使用type()函数创建类似的类。

    Data1 = type('Data1', (object,), {'__doc__': 'Data1 Class', 'd_id': 10})
    SubData1 = type('SubData1', (Data1,), {'__doc__': 'SubData1 Class', 'sd_id': 20})
    
    print(Data1.__class__)
    print(Data1.__bases__)
    print(Data1.__dict__)
    print(Data1.__doc__)
    
    print(SubData1.__class__)
    print(SubData1.__bases__)
    print(SubData1.__dict__)
    print(SubData1.__doc__)

    Output:

    输出:

    <class 'type'>
    (<class 'object'>,)
    {'__doc__': 'Data1 Class', 'd_id': 10, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'Data1' objects>, '__weakref__': <attribute '__weakref__' of 'Data1' objects>}
    Data1 Class
    
    <class 'type'>
    (<class '__main__.Data1'>,)
    {'__doc__': 'SubData1 Class', 'sd_id': 20, '__module__': '__main__'}
    SubData1 Class

    Note that we can’t create functions in the dynamic class using the type() function.

    注意,我们不能使用type()函数在动态类中创建函数。

    type()函数的实际用法 (Real-Life Usage of type() function)

    Python is a dynamically-typed language. So, if we want to know the type of the arguments, we can use the type() function. If you want to make sure that your function works only on the specific types of objects, use isinstance() function.

    Python是一种动态类型的语言。 因此,如果我们想知道参数的类型,可以使用type()函数。 如果要确保函数仅适用于特定类型的对象,请使用isinstance()函数。

    Let’s say we want to create a function to calculate something on two integers. We can implement it in the following way.

    假设我们要创建一个函数来计算两个整数。 我们可以通过以下方式实现它。

    def calculate(x, y, op='sum'):
        if not(isinstance(x, int) and isinstance(y, int)):
            print(f'Invalid Types of Arguments - x:{type(x)}, y:{type(y)}')
            raise TypeError('Incompatible types of arguments, must be integers')
        
        if op == 'difference':
            return x - y
        if op == 'multiply':
            return x * y
        # default is sum
        return x + y

    The isinstance() function is used to validate the input argument type. The type() function is used to print the type of the parameters when validation fails.

    isinstance()函数用于验证输入参数类型。 当验证失败时,type()函数用于打印参数的类型。

    参考资料 (References)

    翻译自: https://www.journaldev.com/15076/python-type

    python type函数

    展开全文
  • Python type()函数

    千次阅读 2018-12-21 20:13:28
    Python type()函数介绍、使用和注意事项

    描述

    type函数是Python的内置函数,返回参数的类型。

     

    语法

    type(object)
    名称 说明 备注
    object 任意类型的对象 不可省略的参数

    返回值:返回object对象的类(即对象的类型)

     

    使用示例

    1. Python内置对象类型

    >>> type('Python')
    <class 'str'>

    2. 自定义对象类型

    class Aa():
        pass
    
    b = Aa()
    print(type(b))

    输出结果是:

    <class '__main__.Aa'>

     

    注意事项

    1. 使用==判断类型是否相等

    >>> type(1) == type(5)
    True
    >>> type('1') == type(1)
    False

    2. 子类和父类属于不同的类型

    在type函数中,子类和父类不属于相同的类型。

        例如在下面的代码中,定义一个类Animal和它的子类Human,并用==判断两个类的对象是否相等,并分别打印出各自type后的结果:

    class Animal():
        pass
    
    class Human(Animal):
        pass
    
    
    animal = Animal()
    human = Human()
    print(type(animal) == type(human))
    print(type(animal))
    print(type(human))

    输出结果:

    False
    <class '__main__.Animal'>
    <class '__main__.Human'>

     

    展开全文
  • Python type hints 调研

    千次阅读 2019-05-06 16:09:35
    Python type hints 调研 参考链接: 官网https://docs.python.org/3/library/typing.html https://ocavue.com/python_typing.html https://blog.csdn.net/chuchus/article/details/77891128 ...

    Python type hints 调研

    参考链接:

    官网 https://docs.python.org/3/library/typing.html

    https://ocavue.com/python_typing.html

    https://blog.csdn.net/chuchus/article/details/77891128

    https://www.cnblogs.com/erhuabushuo/p/10180789.html

    1.function annotation

    def plus(a: int, b: int = 2) -> int:
        return a + b

    这个暂且翻译为函数注解,从python3.0 (见 PEP3107)。Python 解释器在运行时并不会检查类型,所以哪怕参数的类型不对,Python 解释器也不会因此抛出任何异常。

    2.Python 3.5: typing

    1.typing的基础类型

    from typing import Dict, List
    def best_students(scores: Dict[str, int]):
        return {name: score for name, score in scores.items if score >= 90}

    Dict[str, int]表示一个 keys 的类型为 str,values 的类型为 int 的字典,比如{"a": 1, "b": 2}。

    List[int]表示由整型组成的列表,比如[0, 1, 1, 2, 3]。

    Tuple[str, int] 表示一个元组有两个元素,第一个元素是str类型,第二个是int类型。

    基于 typing 提供的类型,我们可以写出相当复杂的嵌套结构:

    Dict[str, Dict[str, List[str]]]
    {
        '原木镇': {
            '第一小学': ['张伟', '王伟', '王芳'],
            '第二小学': ['李伟', '李娜'],
        },
        '鸽子镇': {
            '高山中学': ['张敏', '李静'],
            '亿百中学': ['王静']
            '蟒蛇小学': ['刘伟', '王秀英']
        }
    }

    2.typing的高级类型

    a. Union[None, str] 表示None或者str,下面的函数返回None类型,或者str类型

    from typing import Union, List
    ​
    def get_first_name(names: List[str]) -> Union[None, str]:
        if len(names) >= 1:
            return names[0]
        else:
            return None

    b. Callable[[str, str], bool] 表示一个函数,接收两个str类型的位置参数,返回值是bool类型

    from typing import Callable
    ​
    def get_regex() -> Callable[[str, str], bool]:
        def regex(pattern: str, string: str) -> bool:
            return re
        return regex()

    c. 泛型(Generics)

    在python中除了基本数据类型(列表、元组等),由基本数据类型复合构成的数据类型(序列、映射、容器、迭代器等)称为复合数据类型。

    复合类型这里称为泛型(Generics), 在.typing中有对应的类与其对应。

    from typing import Mapping, Sequence
    ​
    def notify_by_email(employees: Sequence[Employee],
                        overrides: Mapping[str, str]) -> None: 
        pass

    Sequence[Employee] 表示一个序列,序列中的元素为Employee类型。

    Mapping[str, str] 表示一个映射,映射的键为str类型,值为str类型。

    TypeVar 用来注解可变类型的变量、参数,可以通过typing中的TypeVar来注解泛型中的元素下标。

    from typing import Sequence, TypeVar
    ​
    T = TypeVar('T')      # 申明类型变量
    ​
    def first(l: Sequence[T]) -> T:   # Generic function
        return l[0]

    TypeVar声明类型变量时,可以提供一个范围:

    T = TypeVar('T')  # Can be anything
    A = TypeVar('A', str, bytes)  # Must be str or bytes

    d. Any,任何类型

    from typing import Any
    ​
    def log(msg: Any):
        print(Any)

    3.Python 3.6: variable annotations

    变量注解

    items: list = read_json_file()
    class Employee(NamedTuple):
        name: str
        id: int = 3

    4. __annotations__ 属性保存类型注解

    >>> def foo(a: str):
    ...     print('hello', a)
    ...
    ​
    >>> foo.__annotations__
    {'a': str}
    ​
    >>> class Bar:
    ...     a: str
    ...     b: int
    ​
    >>> Bar.__annotations__
    {'a': str, 'b': int}

    5. python typing 做不到的地方

    a. 关键字传参

    def foo(item: str) -> None:
        print(item + "s")
    ​
    ​
    foo(item=0)

    b. 装饰器修饰的函数

    展开全文
  • python type函数

    千次阅读 2019-08-31 17:10:09
    阿里云大学人工智能学前小测验-Python测试 4.代码 print(type([1,2])) 输出结果为 A. <class 'list'> B. <class 'tuple'> C. <class 'int'> D. <class 'set'> 如何知道一个变量的...

    阿里云大学人工智能学前小测验-Python测试

    4.代码 print(type([1,2])) 输出结果为

    A. <class 'list'>

    B. <class 'tuple'>

    C. <class 'int'>

    D. <class 'set'>

     

    如何知道一个变量的数据类型

    基本上入门级最开始使用的就是type 函数,如:

     

     1 num1 = 123
     2 str1 = 'hello'
     3 noneobj = None
     4 print(type(num1))
     5 print(type(str1))
     6 print(type(noneobj))
     7 
     8 <class 'int'>
     9 <class 'str'>
    10 <class 'NoneType'>

    直接对数据对象本身进行type ,如type(123),type('hello'),type(None),结果是一样的。

    对于一些内置变量,比如abs 函数,max 函数, len 函数,也都可以使用type 去获取他们的对象类型。

    1 print(type(abs))
    2 print(type(max))
    3 print(type(len))
    4 
    5 <class 'builtin_function_or_method'> # 这一类说明是Python 内置的函数
    6 <class 'builtin_function_or_method'>
    7 <class 'builtin_function_or_method'>

    补充:python数据类型

                 字符串 str string “”或 ‘’

                  列表 list []

                  元祖 tuple () 类似于列表,但不能修改元素

                  字典 dict dictionary {} 键值对

                  集合 set {} 非键值对

                  集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    展开全文
  • python type 函数

    千次阅读 2016-10-20 17:35:12
    使用 type 确定对象类型>>> n=3.0 >>> type(n) <class 'float'>
  • Python type的使用

    千次阅读 2017-07-17 11:37:15
    判断类型在Python中我们可以使用type进行类型的判断#我们想看一个对象的的类型可以这样 class A: pass a = A()type(a) == A #True #type(obj) 会返回创建a的类型创建对象#这个简单,因为type会返回对象的类型,我们...
  • python type()

    千次阅读 2018-11-08 15:53:06
    例如,我想知道某个数值它是什么类型的,因为是代码小白,真的很不确定,那就用type()函数取它的类型,并用print()函数在控制台打印输出即可。 print(type(某不确定类型的数据))
  • python语言中的type()函数在python中是即简单又实用的一种对象数据类型查询方法。type()函数可以做什么type()就是一个最实用又简单的查看数据类型的方法。type()是一个内建的函数,调用它就能够得到一个反回值,从而...
  • Python type类视角中的对象体系需要我们不断的学习,其中我们使用的时候需要注意。下面我们就看看如何才能更好的运用Python type类。下面的文章希望大家有所收获。 在单纯的Python type类的世界中,一切都是对象....
  • python type()函数

    千次阅读 2018-08-01 10:45:20
    type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。 语法 以下是 type() 方法的语法: class type(name, bases, dict) 参数 name – 类的名称。 bases – 基类的元组。 dict –...
  • Python type hints 之 Optional,Union

    万次阅读 多人点赞 2018-12-13 18:12:57
     type hint 在pep484加入,我个人觉得这种类似于类型约束的(机制)有点违背了python简单、简洁的初衷,在慢慢向c# java 这种强类型语言看齐的节奏。  不过好在不强制使用,个人觉得依照规则编码也有点好处, 一...
  • Python type and object relationship

    千次阅读 2013-06-25 12:15:17
    1) Everything is object in Python, even types (what the hell, how can this happen ? See below bullet points) 2) "class" and "type" are the same thing, they are "type objects". "Type objects" can be s
  • python type() 判断数据类型

    万次阅读 2017-10-30 15:29:07
    type(a).__name__ == 'dict' :可判断a的类型是否类型为dict list tuple 这些也试用 栗子:
  • Python Type Class and Object的文章

    千次阅读 2006-04-24 09:51:00
    Python Types and Objectshttp://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.htmlSubtyping Built-in Typeshttp://www.python.org/dev/peps/pep-0253/Unifying types and classes i
  • Python type(anyObj) 函数与 types 模块

    万次阅读 2010-11-25 12:56:00
    示例:>>> import types>>> type([])>>> type([]) is types.ListTypeTrue>>> print type.__doc__type(object) -> the object's typetype(name, bases, dict) -> a new type>>> print types.__doc__Define names for ...
  • Python中的typetype)返回值

    千次阅读 2020-07-19 16:51:37
    Given a statement type(type) – we have to print its return type value. 给定一个语句类型(类型) ... Python type()函数 (Python type() function) type() function is a library function in Python, it is us...
  • Python报错 python unhashable type

    千次阅读 2017-09-19 17:00:38
    Python中的key 不可以是 list类型 因为 list是可变的 不能被hash
  • python isinstance type区别

    2017-10-04 10:38:56
    python isinstance type区别
  • Python进阶(九)-Python陷阱:Nonetype

    万次阅读 多人点赞 2017-03-17 08:54:37
    Python进阶(九)-Python陷阱:Nonetype  今天解决一位网友的问题,内容如下:   请教代码问题def calc_prod(lst): def ff(): print map(lambda x:x*x,lst) return fff = calc_prod([1, 2, 3, 4]) print f()...
  • Python Type Checking 前言 在最新版本的Python中已经支持了借助编译器对隐式的变量进行变量检查,来帮助程序员更加高效的进行开发工作。 参考网页资料: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,993
精华内容 41,597
热门标签
关键字:

pythontype

python 订阅