2012-03-25 14 views
6

स्ट्रिंग एक मॉड्यूल है और str एक प्रकार है। मैंने पाया कि str में विधियां हैं, और स्ट्रिंग के कुछ स्ट्रिंग विधियां समान हैं।पायथन में स्ट्रिंग विधि और स्ट्र विधि के बीच क्या अंतर है?

>>>dir(str) 
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', 
'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', 
'__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', 
'__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', 
'__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 
'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 
'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 
'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 
'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 
'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 
'zfill'] 

>>> dir(string) 
['Formatter', 'Template', '_TemplateMetaclass', '__builtins__', '__doc__', 
'__file__', '__name__', '__package__', '_float', '_idmap', '_idmapL', '_int', 
'_long', '_multimap', '_re', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 
'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 
'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 
'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 
'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 
'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 
'translate', 'upper', 'uppercase', 'whitespace', 'zfill'] 

विधियों के दो सेटों के बीच क्या अंतर है? क्या एक स्ट्र या स्ट्रिंग एक-दूसरे की विधि का उपयोग कर सकती है?

उत्तर

8

string अब एक बहिष्कृत मॉड्यूल है। आपको हमेशा str ऑब्जेक्ट का उपयोग करना चाहिए।

>>> help(str) 
Help on class str in module __builtin__: 

class str(basestring) 
| str(object) -> string 
| 
| Return a nice string representation of the object. 
| If the argument is a string, the return value is the same object. 
. 
. 
>>>help(string) 
Help on module string: 

NAME 
    string - A collection of string operations (most are no longer used). 

FILE 
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/string.py 

MODULE DOCS 
    http://docs.python.org/library/string 

DESCRIPTION 
    Warning: most of the code you see here isn't normally used nowadays. 
    Beginning with Python 1.6, many of these functions are implemented as 
    methods on the standard string object. They used to be implemented by 
    a built-in module called strop, but strop is now obsolete itself. 
+0

मैं अब देखते हैं: उदाहरण के लिए, यहाँ स्ट्रिंग मॉड्यूल में कम समारोह के लिए स्रोत कोड है। धन्यवाद! – Huo

+2

हमेशा? 'ascii_letters',' maketrans' और अन्य सभी 'स्ट्रिंग' से उपयोगी विधियों/गुणों के बारे में कैसे? –

+0

हाँ, हमेशा नहीं हो सकता है, लेकिन एक सामान्य नियम के रूप में। – ronakg

6

str तरीकों अजगर को जोड़ा गया था जब, मौजूदा स्ट्रिंग मॉड्यूल के बहुत str तरीकों चारों ओर पतली आवरण कार्यों के रूप में लिखा गया था।

# convert UPPER CASE letters to lower case 
def lower(s): 
    """lower(s) -> string 

    Return a copy of the string s converted to lowercase. 

    """ 
    return s.lower() 
+0

आपकी मदद के लिए धन्यवाद! – Huo

संबंधित मुद्दे