螺旋丸 发表于 2020-5-22 10:32:30

关于Python中BIF的疑问

为什么在Python中有的函数直接可以调用
例如i=len(i)
而像 isdigit 这个在使用时前面加上变量和一个'.'
例如 i.isdigit()
我该怎么区分这些函数。

qiuyouzhi 发表于 2020-5-22 10:35:10

有.的就不是函数,是方法了。
那些都是别的类型内置的方法,比如isdigit,
就是字符串的方法,不能用于int类型上。

sunrise085 发表于 2020-5-22 10:40:17

查看BIF :print(dir(__builtins__))
打印出来的是保留字和BIF
不在这个列表的都不是BIF
你所说的isdigit不是BIF,而是str的一个方法
方法和函数是有区别的
方法需要用对象或者类名调用,函数可用直接调用

Twilight6 发表于 2020-5-22 10:46:33

本帖最后由 Twilight6 于 2020-5-22 10:59 编辑

len() 是Python的内置函数
str.isdigit() 是调用字符串内isdigit 的方法
你可以看下我的笔记,用时候在查一查,不用特意背:
Python中所有的保留字及内置函数列表

小甲鱼的资料:
字符串的方法

永恒的蓝色梦想 发表于 2020-5-22 10:46:39

sunrise085 发表于 2020-5-22 10:40
查看BIF :print(dir(__builtins__))
打印出来的是保留字和BIF
不在这个列表的都不是BIF


据我所知,这里面没有保留字

sunrise085 发表于 2020-5-22 11:12:07

永恒的蓝色梦想 发表于 2020-5-22 10:46
据我所知,这里面没有保留字

内建对象中没有关键字?TrueFalse None不都是关键字么?
是我理解的有偏差?
纯小写的都是内置函数应该是没错的吧。

永恒的蓝色梦想 发表于 2020-5-22 11:18:42

sunrise085 发表于 2020-5-22 11:12
内建对象中没有关键字?TrueFalse None不都是关键字么?
是我理解的有偏差?
纯小写的都是内置函数应 ...

{:10_277:}好吧,有,但不全有{:10_277:}

螺旋丸 发表于 2020-5-22 17:27:36

qiuyouzhi 发表于 2020-5-22 10:35
有.的就不是函数,是方法了。
那些都是别的类型内置的方法,比如isdigit,
就是字符串的方法,不能用于in ...

明白了,谢谢

螺旋丸 发表于 2020-5-22 17:28:08

sunrise085 发表于 2020-5-22 10:40
查看BIF :print(dir(__builtins__))
打印出来的是保留字和BIF
不在这个列表的都不是BIF


谢谢了

zwhe 发表于 2020-5-31 10:47:08

{:10_256:}
页: [1]
查看完整版本: 关于Python中BIF的疑问