清波
首先,这个猿问是我在站内消息中 主动(不要脸)要过来的,为了方便后来者查阅(骗积分)。开题,这其实是一个命名空间的问题。但是需要看我回答的人可能都是初学者,所以我就不讲命名空间了,直接解答本题,尽量少扯别的(不可能。。)。初学者很容易被 内置函数,模块里的方法和 某些对象(特别是内置的数据类型)的方法扰乱, 一个一个讲:内置函数:## abs() 就是Python 的内置函数(built-in functions),简称BIF 这样的函数有多少呢? 没数过, 用法就是直接写:
print abs(-11)
11
## 说一个调出所有内置函数的方法,可以打印出来慢慢看:
for i in dir(__builtins__):
print i
## 小写字母开头的都是, 可以挨个 help(xx) 学习了。 当然有一些我们熟悉的,比如说 len() zip() range()
## 题主之所以混淆,是因为这个绝对值,怎么看都是BIF 从Math 家领养过来的。。。模块里的方法:## 就用math 模块吧, sqrt就是 math 模块里面的一个方法(函数), 引用不同,调用方法不同:
## (1) 引用整个模块,把模块作为一个家庭,引入整个模块的意思就好比,我们聚会, math是一个家庭,
## 我们请来他们全家(感觉想骂人),这时候我们称呼math的家人(方法,如sqrt)的时候, 就会说:“math 家的sqrt”
## 对应代码如下:
import math
print math.sqrt(4)
2.0
## (2) 从模块中单独引入该方法(函数), 这个就好比 我们从 math家 直接请来了 sqrt 一个人,如此,称呼他的时候
## 就无需带着家族了,直接喊他的名字就好,代码如下:
from math import sqrt
print sqrt(1)
1.0
## (3) 引用模块中的所有方法(函数),这个跟第一点引入整个模块不同,这次我们虽然也请了math全家,但是却是
## 每一个人都下了请柬,同样称呼的时候也无需带着家族名号了,代码如下:
from math import *
print sqrt(1)
1.0
print log(8,2) ## math 中满眼的三角函数,恕我无能,我认为最简单的就是这个了。。
3.0
## (4) 引入模块中的某方法并给予别名, 这就好比我们开了个假面舞会,或者cosplay大会,从math家请了一位,并且
## 告诉他,你今晚扮演 蝙蝠侠,代码如下:
from math import sqrt as kaifang
print kaifang(16) ## 以我近30年的拼音功力 起的名字 >_< 。
4.0
## (5) 引入整个模块 并赋予这个模块别名,这个跟上面那个差不多了,这次是给他们全家(文明)改名。代码如下:
import math as shuxue
print shuxue.sqrt(16) ## 作为英语渣,看到这句,我也想杀了我自己。。。
4.0
## 小贴士,如果想知道某些模块含有那些方法, 首先 import xxx 然后 help(xxx) 就好了。
## 总结,我擦 扯了这么多,算了不总结了。。。内置数据类型的方法:## 以字符串为例, 首先help(str) 看方法,然后我下面随便用几个。
s='abcdefc'
print s.upper() ## 大写所有
'ABCDEF'
print s.index('c') ## 返回 参数 所处的第一个index, 有其他参数可以调整
2
## 查看某对象的方法: help(对象名), 内置数据类型如 help(list), tuple, set , dict, bool, int, float 等等
## 总结,某些对象或者 内置数据类型(也是对象)的方法调用 就是 Object.method() (对象.方法名())我 —————— 真—————— 能—————— 扯—————— !!!———————— !!!