2022年 11月 4日

python中type怎么用_Python中type的用法

Python中type的用法

xuanli199

2018-11-17 12:06:39

838

0

描述

python的 type 函数有两个用法,当只有一个参数的时候,返回对象的类型。当有三个参数的时候返回一个类对象。

语法

type(object)

type(name, bases, dict)

用法

一个参数

type(object)

返回一个对象的类型,如:

In [1]: a = 10

In [2]: type(a)

Out[2]: int

三个参数

tpye(name, bases, dict)

name 类名

bases 父类的元组

dict 类的属性方法和值组成的键值对

返回一个类对象:

# 实例方法

def instancetest(self):

print(“this is a instance method”)

# 类方法

@classmethod

def classtest(cls):

print(“this is a class method”)

# 静态方法

@staticmethod

def statictest():

print(“this is a static method”)

# 创建类

test_property = {“name”: “tom”, “instancetest”: instancetest, “classtest”: classtest, “statictest”: statictest}

Test = type(“Test”, (), test_property)

# 创建对象

test = Test()

# 调用方法

print(test.name)

test.instancetest()

test.classtest()

test.statictest()

运行结果:

tom

this is a instance method

this is a class method

this is a static method

使用help打印Test的详细信息:

class Test(builtins.object)

| Methods defined here:

|

| instancetest(self)

| # 实例方法

|

| ———————————————————————-

| Class methods defined here:

|

| classtest() from builtins.type

| # 类方法

|

| ———————————————————————-

| Static methods defined here:

|

| statictest()

| # 静态方法

|

| ———————————————————————-

| Data descriptors defined here:

|

| __dict__

| dictionary for instance variables (if defined)

|

| __weakref__

| list of weak references to the object (if defined)

|

| ———————————————————————-

| Data and other attributes defined here:

|

| name = ‘tom’

可以看出我们创建了一个Test类,包含一个实例方法statictest,类方法classtest,静态方法statictest,和一个属性name = ‘tom’。

type和isinstance

type不会认为子类是父类的类型,不会考虑继承关系。isinstance会任务子类是父类的类型,考虑继承关系。

Type和Object

type为对象的顶点,所有对象都创建自type。

object为类继承的顶点,所有类都继承自object。

python中万物皆对象,一个python对象可能拥有两个属性,__class__ 和 __base__,__class__ 表示这个对象是谁创建的,__base__ 表示一个类的父类是谁。

In [1]: object.__class__

Out[1]: type

In [2]: type.__base__

Out[2]: object

可以得出结论:

type类继承自object

object的对象创建自type