Is er een manier om multiline opmerkingen in Python?

Ik heb onlangs begonnen met het bestuderen Python , maar ik kon niet vinden hoe uit te voeren multi-line commentaar. De meeste talen hebben blokopmerking symbolen zoals

/*
*/

Ik heb geprobeerd dit in Python, maar het werpt een fout, dus dit is waarschijnlijk niet de juiste manier. Heeft Python hebben eigenlijk een multiline reactie functie?


1, Autoriteit 100%

U kunt triple-aanhalingstekens te gebruiken. Als ze niet een docstring (het eerste wat in een klasse / functie / module), worden deze genegeerd.

'''
This is a multiline
comment.
'''

(Zorg ervoor om de leidende '''inspringen op de juiste wijze aan een IndentationErrorte vermijden.)

Guido van Rossum (maker van Python) tweeted dit als “pro tip”.

Echter, Python’s stijlgids PEP8, gunsten met behulp van opeenvolgende single- lijn reacties , zoals deze:

# This is a multiline
# comment.

… en dit is ook wat je in veel projecten vindt. Tekst editors hebben meestal een snelkoppeling naar deze gemakkelijk te doen.


2, Autoriteit 4%

Python heeft wel een multiline string/comment syntaxin de zin dat, tenzij gebruikt als docstrings, multiline strings geen bytecode genereren — net als #-aanstaande opmerkingen. In feite werkt het precies als een opmerking.

Aan de andere kant, als u zegt dat dit gedrag in de officiële documentatie moet worden gedocumenteerd om een echte commentaarsyntaxis te zijn, dan zou u gelijk hebben als u zegt dat het niet gegarandeerd is als onderdeel van de taalspecificatie.

In ieder geval moet je teksteditor ook gemakkelijk commentaar kunnen geven op een geselecteerde regio (door een #voor elke regel afzonderlijk te plaatsen). Zo niet, schakel dan over naar een teksteditor die dat wel doet.

Programmeren in Python zonder bepaalde tekstbewerkingsfuncties kan een pijnlijke ervaring zijn. Het vinden van de juiste editor (en weten hoe je deze moet gebruiken) kan een groot verschil maken in hoe de Python-programmeerervaring wordt ervaren.

Niet alleen zou de teksteditor in staat moeten zijn om geselecteerde gebieden uit commentaar te halen, hij zou ook in staat moeten zijn om codeblokken gemakkelijk naar links en rechts te schuiven, en hij zou de cursor automatisch op het huidige inspringingsniveau moeten plaatsen wanneer u op drukt. Voer in. Het opvouwen van codes kan ook handig zijn.


Om te beschermen tegen het verval van links, hier is de inhoud van Guido van Rossum’s tweet:

@BSUCSClubPython-tip: u kunt tekenreeksen met meerdere regels gebruiken als opmerkingen met meerdere regels. Tenzij ze worden gebruikt als docstrings, genereren ze geen code! 🙂


Antwoord 3, autoriteit 3%

Vanaf het geaccepteerde antwoord …

U kunt triple-geciteerde snaren gebruiken. Wanneer ze geen docstring zijn (eerste ding in een klas / functie / module), worden ze genegeerd.

Dit is gewoon niet waar. In tegenstelling tot opmerkingen zijn triple-geciteerde snaren nog steeds geparseerd en moeten syntactisch geldig zijn, ongeacht waar ze in de broncode voorkomen.

Als u deze code probeert uit te voeren …

def parse_token(token):
    """
    This function parses a token.
    TODO: write a decent docstring :-)
    """
    if token == '\\and':
        do_something()
    elif token == '\\or':
        do_something_else()
    elif token == '\\xor':
        '''
        Note that we still need to provide support for the deprecated
        token \xor. Hopefully we can drop support in libfoo 2.0.
        '''
        do_a_different_thing()
    else:
        raise ValueError

u krijgt …

ValueError: invalid \x escape

… op python 2.x of …

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape

… op Python 3.x.

De enige manier om meerdere opmerkingen te doen die worden genegeerd door de parser is …

elif token == '\\xor':
    # Note that we still need to provide support for the deprecated
    # token \xor. Hopefully we can drop support in libfoo 2.0.
    do_a_different_thing()

4, Autoriteit 2%

in Python 2.7 De Multiline Commentaar is:

"""
This is a
multilline comment
"""

Als u in een klasse bent, moet u het op de juiste wijzen.

Bijvoorbeeld:

class weather2():
   """
   def getStatus_code(self, url):
       world.url = url
       result = requests.get(url)
       return result.status_code
   """

5

Afaik, Python heeft geen blokopmerkingen. Voor het opnemen van individuele lijnen kunt u de #teken gebruiken.

Als u notepad ++ , Er is een snelkoppeling voor BLOK COMMENTING . Ik ben zeker dat anderen gvim en Emacs hebben vergelijkbare functies.


6

Ik denk dat het niet, behalve dat een multiline-string niet wordt verwerkt. De meeste, zo niet alle Python-ID’s hebben echter een korte slicket voor ‘commentaar’ meerdere regels van de code.


7

Als u een opmerking in

plaatst

"""
long comment here
"""

In het midden van een script herkent Python / Linters dat niet. Vouwen wordt verpest, omdat de bovenstaande opmerking geen deel uitmaakt van de standaardaanbevelingen. Het is beter om

te gebruiken

# Long comment
# here.

Als u vim , kunt u plug-ins als Commentary.vim , om automatisch commentaar te geven op lange rijen door op Vjgccte drukken. Waar Vjselecteert twee regels code en gccComments them out.

Als u geen plug-ins wilt gebruiken zoals het bovenstaande, kunt u zoeken en vervangen als

:.,.+1s/^/# /g

Hiermee wordt het eerste teken vervangen op de huidige en volgende regel met #.


8

Er is geen dergelijke functie als een multi-line-opmerking. #is de enige manier om een ​​enkele regel van code te becommentariëren.
Velen van jullie beantwoordden ” ‘een opmerking’ ” als hun oplossing.

Het lijkt te werken, maar intern '''in Python neemt de lijnen omsloten als een gewone snaren die de tolk niet negeert als commentaar met #.

controleer de officiële documentatie hier


9

Helaas stringificatie kan niet altijd worden gebruikt als commentaar uit! Het is dus veiliger om vast te houden aan de standaard die elke regel met een #.

.

Hier is een voorbeeld:

test1 = [1, 2, 3, 4,]       # test1 contains 4 integers
test2 = [1, 2, '''3, 4,'''] # test2 contains 2 integers **and the string** '3, 4,'

10

Nou, u kunt dit proberen (bij het uitvoeren van de vermelding, moet de invoer naar de eerste vraag worden geciteerd met '):

"""
print("What's your name? ")
myName = input()
print("It's nice to meet you " + myName)
print("Number of characters is ")
print(len(myName))
age = input("What's your age? ")
print("You will be " + str(int(age)+1) + " next year.")
"""
a = input()
print(a)
print(a*5)

Alles wat tussen """staat, zal worden becommentarieerd.

Als u op zoek bent naar opmerkingen van één regel, dan is dit #.


Antwoord 11

Visual Studio Codeuniversele officiële schakelaar voor opmerkingen met meerdere regels.

macOS: Selecteer code-block en dan +/

Windows: Selecteer code-block en dan Ctrl+/


Antwoord 12

Ik raad af om """te gebruiken voor opmerkingen met meerdere regels!

Hier is een eenvoudig voorbeeld om te benadrukken wat als onverwacht gedrag kan worden beschouwd:

print('{}\n{}'.format(
    'I am a string',
    """
    Some people consider me a
    multi-line comment, but
    """
    'clearly I am also a string'
    )
)

Kijk nu eens naar de uitvoer:

I am a string
    Some people consider me a
    multi-line comment, but
    clearly I am also a string

De tekenreeks met meerdere regels werd niet als commentaar behandeld, maar werd samengevoegd met 'clearly I'm also a string'om een enkele tekenreeks te vormen.

Als je op meerdere regels wilt reageren, doe dat dan volgens PEP 8richtlijnen:

print('{}\n{}'.format(
    'I am a string',
    # Some people consider me a
    # multi-line comment, but
    'clearly I am also a string'
    )
)

Uitvoer:

I am a string
clearly I am also a string

Antwoord 13

Commentaar met meerdere regels in Python:

Voor mij werkten zowel ”’ als ”’.

Voorbeeld:

a = 10
b = 20
c = a+b
'''
print ('hello')
'''
print ('Addition is: ', a+b)

Voorbeeld:

a = 10
b = 20
c = a+b
"""
print('hello')
"""
print('Addition is: ', a+b)

Antwoord 14

De inline opmerkingen in Python beginnen met een hash-teken.

hello = "Hello!" # This is an inline comment
print(hello)

Hallo!

Merk op dat een hash-teken binnen een letterlijke tekenreeks slechts een hash-teken is.

dial = "Dial #100 to make an emergency call."
print(dial)

Kies #100 om een alarmnummer te bellen.

Een hekje kan ook worden gebruikt voor opmerkingen van één of meerdere regels.

hello = "Hello"
world = "World"
# First print hello
# And print world
print(hello)
print(world)

Hallo

Wereld

Omsluit de tekst met driedubbele dubbele aanhalingstekens ter ondersteuning van docstring.

def say_hello(name):
    """
    This is docstring comment and
    it's support multi line.
    :param name it's your name
    :type name str
    """
    return "Hello " + name + '!'
print(say_hello("John"))

Hallo John!

Voeg de tekst bij met Triple Single Quotes for Block Comments.

'''
I don't care the parameters and
docstrings here.
'''

15

op python 2.7.13:

single:

"A sample single line comment "

Multiline:

"""
A sample
multiline comment
on PyCharm
"""

Antwoord 16

Ja, het is prima om beide te gebruiken:

'''
Comments
'''

en

"""
Comments
"""

Maar het enige dat u allemaal moet onthouden als u in een IDE draait, is dat u het hele bestand moet ‘UITVOEREN’ om te worden geaccepteerd als codes met meerdere regels. Regel voor regel ‘RUN’ werkt niet goed en geeft een fout weer.


Antwoord 17

Als je meerdere regels code in Python wilt becommentariëren, gebruik je gewoon een #commentaar van één regel op elke regel:

# This is comment 1
# This is comment 2 
# This is comment 3

Voor het schrijven van “juiste” opmerkingen met meerdere regels in Python moet u tekenreeksen met meerdere regels gebruiken met de syntaxis """
Python heeft de functie Documentatiestrings (of docstrings). Het geeft programmeurs een gemakkelijke manier om snelle notities toe te voegen bij elke Python-module, functie, klasse en methode.

'''
This is
multiline
comment
'''

Vermeld ook dat je toegang hebt tot docstring door een klasseobject als dit

myobj.__doc__

Antwoord 18

Ik vind onder andere dat de gemakkelijkste manier is om de IDE-commentaarfuncties te gebruiken die de Python-commentaarondersteuning van #gebruiken.

Ik gebruik Anaconda Spyder en het heeft:

  • Ctrl+ 1– Opmerking/commentaar verwijderen
  • Ctrl+ 4– Reageer op een codeblok
  • Ctrl+ 5– Een codeblok verwijderen

Het zou commentaar geven op een enkele/meerdere regels code met #.

Ik vind het het gemakkelijkst.

Bijvoorbeeld een blokreactie:

# =============================================================================
#     Sample Commented code in spyder
#  Hello, World!
# =============================================================================

Antwoord 19

Een commentaar met meerdere regels bestaat niet echt in Python. Het onderstaande voorbeeld bestaat uit een niet-toegewezen string, die door Python is gevalideerd op syntactische fouten.

Een paar teksteditors, zoals Notepad++, bieden ons snelkoppelingen om opmerkingen te plaatsen een geschreven stuk code of woorden uit.

def foo():
    "This is a doc string."
    # A single line comment
    """
       This
       is a multiline
       comment/String
    """
    """
    print "This is a sample foo function"
    print "This function has no arguments"
    """
    return True

Ook Ctrl+ Kis een sneltoets in Notepad++ om commentaar te blokkeren. Het voegt een #toe voor elke regel onder de selectie. Ctrl+ Shift+ Kis voor het verwijderen van commentaar.


Antwoord 20

Selecteer de regels die u wilt becommentariëren en gebruik vervolgens Ctrl+ ?om commentaar te geven op de Python-code in de Sublieme tekst-editor.

Voor een enkele regel kunt u Shift+ #gebruiken.


Antwoord 21

U kunt het volgende gebruiken. Dit wordt DockString genoemd.

def my_function(arg1):
    """
    Summary line.
    Extended description of function.
    Parameters:
    arg1 (int): Description of arg1
    Returns:
    int: Description of return value
    """
    return arg1
print my_function.__doc__

Antwoord 22

Als u een opmerking schrijft in een regel met een code, moet u een opmerking schrijven, waarbij u 2 spaties voor het #-teken en 1 spatie voor het #-teken laat

print("Hello World")  # printing

Als u een opmerking op een nieuwe regel schrijft, moet u een opmerking schrijven, waarbij u 1 spatie kn in het #-teken laat

# single line comment

Als je opmerkingen wilt schrijven die langer zijn dan 1 regel, gebruik je 3 aanhalingstekens

"""
This is a comment
written in
more than just one line
"""

Other episodes