Vinay Vinay - 6 months ago 11
Python Question

python string module vs str methods

>>> import string
>>> s = 'happy cat'
>>> string.find(s, 'cat')
6


and

>>> s = 'happy cat'
>>> s.find('cat')
6


In the above 2 pieces of code, i have the following doubts.


  1. Why is the 2nd code working without import the string module?

  2. Is there any performance improvement in using one over the other?



Thanks,
Vinay

Answer

The functions defined in string module that are nowadays methods of str were deprecated in Python 2.4 and should not be used at all, though they were retained in later Python 2 versions for backward-compatibility. They were removed in Python 3.0.

  1. Why is the 2nd code working without import the string module?

Because it's a method of str type.

  1. Is there any performance improvement in using one over the other?

Well, string.find(x, y) calls x.find(y), but the performance doesn't matter here (see first sentence).