当前位置:  开发笔记 > 编程语言 > 正文

string.split(text)或text.split():有什么区别?

如何解决《string.split(text)或text.split():有什么区别?》经验,为你挑选了4个好方法。

有一件事我不明白......

想象一下,你有一个text ="hello world",你想分开它.

在某些地方,我看到有人想要分割文字:

string.split(text)

在其他地方,我看到人们只是在做:

text.split()

有什么不同?为什么你以某种方式或以其他方式做?你能给我一个理论解释吗?



1> csl..:

有趣的是,Python 2.5.1中两者的文档字符串并不完全相同:

>>> import string
>>> help(string.split)
Help on function split in module string:

split(s, sep=None, maxsplit=-1)
    split(s [,sep [,maxsplit]]) -> list of strings

    Return a list of the words in the string s, using sep as the
    delimiter string.  If maxsplit is given, splits at no more than
    maxsplit places (resulting in at most maxsplit+1 words).  If sep
    is not specified or is None, any whitespace string is a separator.

    (split and splitfields are synonymous)

>>> help("".split)
Help on built-in function split:

split(...)
    S.split([sep [,maxsplit]]) -> list of strings

    Return a list of the words in the string S, using sep as the
    delimiter string.  If maxsplit is given, at most maxsplit
    splits are done. If sep is not specified or is None, any
    whitespace string is a separator.

深入挖掘,你会发现这两种形式是完全等价的,因为string.split实际上调用了s.split()(搜索split -functions).



2> S.Lott..:

string.split(stringobj)string模块的一个功能,必须单独导入.曾几何时,这是拆分字符串的唯一方法.这是你正在看的一些旧代码.

stringobj.split()是字符串对象的一个​​功能stringobj,它比string模块更新.但是很老了.这是目前的做法.



3> babbageclunk..:

额外注意事项:str是字符串类型,正如S.Lott在上面指出的那样.这意味着这两种形式:

'a b c'.split()
str.split('a b c')

# both return ['a', 'b', 'c']

...是等价的,因为str.split是未绑定的方法,s.split而是str对象的绑定方法.在第二种情况下,即得到在向传递的字符串str.split被用作self在该方法中.

这在这里没有太大的区别,但它是Python的对象系统如何工作的一个重要特征.

有关绑定和未绑定方法的更多信息.



4> 小智..:

简短回答:字符串模块是在python 1.6之前执行这些操作的唯一方法 - 它们已经被添加到字符串中作为方法.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有