博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python type的用法
阅读量:5085 次
发布时间:2019-06-13

本文共 2061 字,大约阅读时间需要 6 分钟。

目录

描述

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()

运行结果:

tomthis is a instance methodthis 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

转载于:https://www.cnblogs.com/linwenbin/p/10530854.html

你可能感兴趣的文章
JUnit单元测试
查看>>
使用spring boot 2.1.8生成的maven项目pom.xml第一行报错unknown error
查看>>
@Data注解简化代码
查看>>
青春大概
查看>>
7月总结
查看>>
关于英语写作和阅读的学习——施一公教授的两篇博文
查看>>
将项目加入tfs源代码管理
查看>>
【2.1】模型层简介
查看>>
python3安装文件遇到ssl未安装问题
查看>>
【2.4】初识Django Admin模块
查看>>
【3.2】初识Django的模板系统
查看>>
【2.5】实现博客数据返回页面
查看>>
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Linux(Centos)之安装Redis及注意事项
查看>>
【3.1】使用Bootstrap实现静态博客页面
查看>>
【1.1】爬虫基本原理讲解
查看>>
【3.3】使用模板系统渲染博客页面
查看>>
django+markdown
查看>>