鱼C论坛

 找回密码
 立即注册
查看: 2750|回复: 12

[已解决]我竟然发现了Python的秘密数据类型!?

[复制链接]
发表于 2022-8-20 12:04:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 KeyError 于 2022-11-16 19:40 编辑



最佳答案
2022-8-20 12:07:55
type其实是查看当前对象是由什么类实例化出来的
比如这个代码
>>> class hello:
...     pass
...
>>> a = hello()
>>> type(a)
<class '__main__.hello'>
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-20 12:07:55 | 显示全部楼层    本楼为最佳答案   
type其实是查看当前对象是由什么类实例化出来的
比如这个代码
>>> class hello:
...     pass
...
>>> a = hello()
>>> type(a)
<class '__main__.hello'>
>>>

评分

参与人数 1荣誉 +5 鱼币 +1 收起 理由
KeyError + 5 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2022-8-20 12:09:54 | 显示全部楼层
这帖子会被删掉的,不用回复了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-21 10:54:59 | 显示全部楼层
>>>type(help)
<class '_sitebuiltins._Helper'>
>>> class A:
             pass

>>> type(A)
<class 'type'>
所以'type'是一个类的名称。
>>> type(type)
<class 'type'>
>>> a=A()
>>> type(a)
<class '__main__.A'>
>>> type(Ellipsis)
<class 'ellipsis'>
可以自己去看python Shell的Help。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-21 10:59:49 | 显示全部楼层
本帖最后由 KeyError 于 2022-11-16 19:41 编辑

>>> def f():
             print(3)

>>> type(f)
3
<class 'function'>
函数在Python里的类型是'function'?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-22 12:24:31 | 显示全部楼层
试试:
>>> type(print)
<class 'builtin_function_or_method'>
>>> type(input)
#跟print一样,省略。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-22 12:26:32 | 显示全部楼层
>>> type
<class 'type'>
可见type()是将数据转换为type类型。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-23 12:38:55 | 显示全部楼层
KeyError 发表于 2022-8-20 12:09
这帖子会被删掉的,不用回复了。


你们真不回复了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-23 12:44:42 | 显示全部楼层
>>> type(int.__add__)
<class'wrapper_descriptor'>
python中有些类型是找不到的,像魔法方法'wrapper_descriptor'。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-23 15:56:24 | 显示全部楼层
KeyError 发表于 2022-8-21 10:59
>>> def f():
             print(3)

f()在这里只会打印3,而你没有指定返回值,所以默认返回None,type(None)也是一样的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-24 18:34:02 | 显示全部楼层
临时号 发表于 2022-8-23 15:56
f()在这里只会打印3,而你没有指定返回值,所以默认返回None,type(None)也是一样的效果

一个函数的类型应该就是它返回的值的类型吧(函数默认返回None)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-24 18:41:27 | 显示全部楼层
KeyError 发表于 2022-8-24 18:34
一个函数的类型应该就是它返回的值的类型吧(函数默认返回None)。

不,你这里看得不是函数的类型,而是函数的返回值的类型
看函数的类型应该是
def f():
    print("Hello")

type(f)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-10 18:32:25 | 显示全部楼层
python2:
>>> type(1234567890)
<class 'long'>
>>> type(b'abcde')
#错误提示信息
python3:
>>> type(1234567890)
<class 'int'>
>>> type(b'abcdef')
<class 'bytes'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 18:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表