5 svar

  1. 22

    str er en indbygget funktion (faktisk en klasse), som konverterer sit argument om, at en streng. string er en modul, som giver fælles string operationer.

    >>> str
    <class 'str'>
    >>> str(42)
    '42'
    >>> import string
    >>> string
    <module 'string' from '/usr/lib/python3.1/string.py'>
    >>> string.digits
    '0123456789'

    Sagt på en anden måde, str objekter er en tekstuel repræsentation af nogle objekt o, ofte skabt ved at kalde str(o). Disse objekter har visse metoder defineret på dem. Modulet string giver ekstra funktioner og konstanter, der er nyttige, når man arbejder med strenge.

    Er str en indbygget funktion eller en klasse? Jeg troede, de ville være helt anderledes.
    x = 'hello, world' – er x en str eller en streng? docs.python.org/3/library/stdtypes.html#string-methods refererer til mange str. metoder – og så er der docs.python.org/3/library/string.html – hvorfor er det sprog, der har brug for begge dele?

    OriginalForfatteren Stephan202

  2. 5

    Der er en vis overlapning mellem string modul og str type, hovedsagelig af historiske årsager. I de tidlige versioner af Python-str objekter ikke har metoder, så alle streng-manipulation blev gjort med funktioner, der er fra string modul. Når metoder blev tilføjet til str type (i Python 1.5?) de funktioner, der blev efterladt i string modul for kompatibilitet, men nu bare frem til at det svarer str metode.

    Men streng modulet indeholder også konstanter og funktioner, som er metoder ikke om str, såsom formatering, karakter oversættelse osv.

    Jeg tror, at dette bør tilføjes, at den accepterede svar, da jeg mener, det er sandsynligvis svaret mennesker er på udkig efter. For mig, var jeg forsøger at finde ud af, hvorfor en person i en ældre bog var import string modul til at gøre en split på en snor.

    OriginalForfatteren Dave Kirby

  3. 4

    Som Stephan202 sagde: str er en indbygget funktion, som kun bruges til at konvertere element i strengen. Det har også mange brugbare metoder.
    For eksempel:

    >>> str(100)
    '100' # converts integer into string.
    
    >>> str.lower('foobar')
    'FOOBAR'

    Lad os nu tale om Streng.– Det er et python-modul, som er meget interessante funktioner.
    En af dem Skabelon thingy

    >>> from string import  Template 
    >>> t = Template('$foo is a test')
    >>> t.substitute (foo='this')
    'this is a test' # Replaces $foo variable with 'this'

    Der er andre brugbare metoder. Antag, at du ønsker, at alle ascii-bogstaver

    >>> string.ascii_letters
    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    Funktioner er metoder?

    OriginalForfatteren aatifh

  4. 0

    “streng” er et modul, der giver string håndtering funktioner, str. er en indbygget funktion, der konverterer et objekt til en string repræsentation. Ingen sammenhæng mellem de to.

    OriginalForfatteren Matthew Iselin

  5. 0

    String er et modul, men har den samme evne som en klasse ‘str’ er.

    Jeg foreslår at skrive ‘string’, og skriv et ‘.’ og vent et par sekunder, og en pop-ned liste vil blive vist og du vil se, at mange af de metoder, der er også dele af ‘str’.

    >>>dir(string)

    [‘Formatter’, ‘Skabelon’, ‘_TemplateMetaclass’, ‘builtins‘, ‘doc‘, ‘fil‘, ‘navn‘, ‘pakke‘, ‘_float’, ‘_idmap’, ‘_idmapL’, ‘_int’, ‘_long’, ‘_multimap’, ‘_re’, ‘ascii_letters’, ‘ascii_lowercase’, ‘ascii_uppercase’, ‘atof’, ‘atof_error’, ‘atoi’, ‘atoi_error’, ‘atol’, ‘atol_error’, ‘skrive’, ‘capwords’, ‘center’, ‘antal’, ‘digits’, ‘expandtabs’, ‘finde’, ‘hexdigits’, ‘index’, ‘index_error’, ‘deltag’, ‘joinfields’, ‘breve’, ‘ljust’, ‘lavere’, ‘små bogstaver’, ‘lstrip’, ‘maketrans’, ‘octdigits’, ‘skrivelig’, ‘tegnsætning’, ‘erstat’, ‘rfind’, ‘rindex’, ‘rjust’, ‘rsplit’, ‘rstrip’, ‘split’, ‘splitfields’, ‘strip’, ‘swapcase’, ‘oversætte’, ‘upper’, ‘store bogstaver’, ‘whitespace’, ‘zfill’]

    eller du kan gøre dette:

    >>>help(string)

    nu, du er nødt til at importere Streng til at bruge, men str ikke har den slags begrænsninger.

    >>>help(str)

    Dette giver en lignende udseende listen, så godt.

    Så den grundlæggende forskel er, at du er nødt til at importere Streng, men ikke str.

    OriginalForfatteren user7360021

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *