📜  python中的typage(1)

📅  最后修改于: 2023-12-03 14:46:39.099000             🧑  作者: Mango

Python中的Type和Typing

在Python编程中,Type和Typing是非常重要的概念,尤其是在面向对象编程(OOP)中更是关键。在这篇文章中,我们将介绍Python中的Type和Typing,并说明它们的作用以及如何使用它们。

Type

Python中的Type是指一个对象所属的类(class)。Python中所有的对象都有类型,而且每个类型都对应于一种类。Type可以通过type()函数来获取,例如:

x = 5
print(type(x))

上述代码会输出 int,表示x是一个整数(int)。

内置类型

在Python中有许多内置的类型,包括整数(int)、浮点数(float)、字符串(str)、列表(list)、字典(dict)、元组(tuple)等,其中整数、浮点数、字符串是最常见的。例如:

x = 5
y = 3.14
z = 'hello'
print(type(x))
print(type(y))
print(type(z))

输出:

<class 'int'>
<class 'float'>
<class 'str'>
自定义类型

在Python中,我们可以创建自己的对象类型,这些类型可以是类(class)、函数(function)等等。例如,下面的代码创建了一个名为Person的类:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Jack", 30)
print(type(p))

输出:

<class '__main__.Person'>
判断类型

我们可以使用isinstance()函数来判断一个对象是否属于某种类型。例如:

x = 5
if isinstance(x, int):
    print("x is an integer")

输出:

x is an integer
Typing

Typing是Python的一个模块,它用于规范变量、函数等的类型注释。在Python 3.5及以上的版本中,Typing已经被加入到了Python标准库中,可以直接使用。使用Typing可以提高代码的可读性和健壮性。

基本类型注释

我们可以使用Typing中的类型注释来规定变量、函数等的类型,例如:

def greeting(name: str) -> str:
    return "Hello " + name

print(greeting("Jack"))

输出:

Hello Jack

上述代码中,': str'和'-> str'都是类型注释,表示greeting函数的参数类型是字符串(str),返回类型也是字符串(str)。

除了基本类型注释,还有许多其他类型注释,例如List、Tuple、Dict、Set等,这些类型注释可以帮助我们更好地规范代码。

类型别名

有时候,我们可能需要定义一些复杂的类型,这时候使用Typing的类型别名可以更方便地实现。例如:

from typing import List, Dict, Tuple

Person = Tuple[str, int]

def greeting(people: List[Person]) -> Dict[str, str]:
    greetings = {}
    for name, age in people:
        greetings[name] = "Hello, I'm {} and I'm {} years old".format(name, age)
    return greetings

people = [("Jack", 30), ("Mary", 25), ("Tom", 35)]
print(greeting(people))

输出:

{'Jack': "Hello, I'm Jack and I'm 30 years old", 'Mary': "Hello, I'm Mary and I'm 25 years old", 'Tom': "Hello, I'm Tom and I'm 35 years old"}

上述代码中,我们使用了Person = Tuple[str, int]来定义了一个类型别名,表示Person类型是一个只有字符串(str)和整数(int)两个元素的元组(tuple)。在greeting函数中,我们用List[Person]表示了一个Person类型的列表(list),用Dict[str, str]表示了一个键值类型为字符串(str)的字典(dict)。

总结

Python中的Type和Typing是非常重要的概念,Type用来表示对象所属的类(class),而Typing则用来规范变量、函数等的类型注释。使用Type和Typing可以帮助我们更好地规范并增加代码的可读性和健壮性。