it-swarm-tr.com

Python'da çok satırlı yorum oluşturmanın yolu?

Kısa süre önce Python 'da çalışmaya başladım, ancak çok satırlı yorumların nasıl uygulandığını bulamadım. Pek çok dilde, yorum sembollerini engelleyen bloklar vardır. 

/* 

*/

Bunu Python'da denedim, ancak bir hata attı, bu yüzden muhtemelen doğru yol bu değil. Python'un aslında çok satırlı bir yorum özelliği var mı?

934
Dungeon Hunter

Üçlü alıntı dizeleri kullanabilirsiniz. Doküman olmadıklarında (bir sınıf/fonksiyon/modülde ilk şey) dikkate alınmazlar. 

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

(Bir IndentationError öğesinden kaçınmak için baştaki ''' öğesini uygun şekilde girdiğinizden emin olun.)

Guido van Rossum (Python'un yaratıcısı) bunu tweetledi "profesyonel ipucu" olarak.

Bununla birlikte, Python'un stil rehberi PEP8, ardışık tek satırlı yorumları kullanmayı tercih ediyor , ve bu da birçok projede bulacağınız şey. Editörler genellikle bunu kolayca yapmak için kısayollara sahiptir.

1489
Petr Viktorin

Python'un, çok satırlı bir dize/yorum sözdizimi vardır , yani, docstrings olarak kullanılmadıkça, çok satırlı dizeler bytecode üretmez - tıpkı #-önceden hazırlanmış yorumlar gibi Aslında, tam bir yorum gibi davranıyor. 

Öte yandan, bu davranışın resmi bir yorumda bulunmak için resmi belgede belgelenmesi gerektiğini söylerseniz, evet, dil belirtiminin bir parçası olarak garanti edilmemiş olduğunu söyleme hakkınız olacaktır.

Her durumda editörünüz seçilen bir Bölgeyi kolaylıkla yorumlayabilmelidir (her satırın önüne bir # yerleştirerek). Değilse, bunu yapan bir düzenleyiciye geçin.

Python'da programlama, belirli metin düzenleme özellikleri olmadan, acı verici bir deneyim olabilir. Doğru editörü bulmak (ve nasıl kullanılacağını bilmek) Python programlama deneyiminin nasıl algılandığı konusunda büyük bir fark yaratabilir.

Editör sadece seçilen bölgeleri yorumlayabilmeli, aynı zamanda kod bloklarını kolayca sola ve sağa kaydırabilmeli ve imleci otomatik olarak mevcut girintiye girebilmeniz için imleci otomatik olarak yerleştirebilmelidir. Enter'a bas. Kod katlama da faydalı olabilir.


Bağlantı bozulmalarına karşı korunmak için Guido van Rossum'un Tweet içeriğinin içeriği:

@BSUCSClub Python ipucu: Çok satırlı dizeleri çok satırlı yorumlar olarak kullanabilirsiniz. Doküman olarak kullanılmazsa, kod üretmezler! :-)

68
unutbu

Python 2.7'de çok satırlı yorum:

"""
This is a
multilline comment
"""

Bir sınıf içinde iseniz, doğru bir şekilde sekmelisiniz.

Örneğin:

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

Umut ediyorum bu yardım eder!

31

Kabul edilen cevaptan ...

Üçlü alıntı dizeleri kullanabilirsiniz. Doküman olmadıklarında (bir sınıf/fonksiyon/modülde ilk şey) dikkate alınmazlar.

Bu sadece doğru değil. Yorumların aksine, üçlü alıntı dizeleri hala ayrıştırılır ve kaynak kodda nerede göründüklerinden bağımsız olarak sözdizimsel olarak geçerli olmalıdır.

Bu kodu çalıştırmayı denersen ...

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

Ya alacaksın ...

ValueError: invalid \x escape

... Python 2.x veya ...

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

... Python 3.x'te.

Ayrıştırıcı tarafından göz ardı edilen çok satırlı yorumlar yapmanın tek yolu ...

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()
30
Aya

AFAIK, Python'un yorumları engellemiyor. Tek tek satırları yorumlamak için # karakterini kullanabilirsiniz.

Eğer Notepad ++ kullanıyorsanız , . Eminim gVim ve Emacs benzer özelliklere sahiptir.

23

Bence, çok satırlı bir dizgenin işlenmemesi dışında öyle değil. Ancak, çoğu, tüm Python IDE'lerinde birden fazla kod satırını 'yorumlama' için bir kısayol tuşu bulunmazsa.

10
Anti Earth

Yorum eklerseniz 

"""
long comment here
"""

bir betiğin ortasında python/linters bunu tanımaz. Yukarıdaki yorumlar standart tavsiyelerin bir parçası olmadığından, katlanır hale gelir. Kullanımı daha iyi 

# long comment
# here.

vim kullanıyorsanız, https://github.com/tpope/vim-commentary gibi eklentileri, Vjgcc tuşuna basarak uzun yorum satırlarını otomatik olarak yorumlamak için kullanabilirsiniz. Vj 2 satır kod seçtiğinde ve gcc bunları yorumlar. 

Yukarıdaki gibi eklentileri kullanmak istemiyorsanız arama ve benzeri kullanabilirsiniz

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

Bu, şu anki ve bir sonraki satırdaki ilk karakteri # ile değiştirir. 

5
alpha_989

Ne yazık ki stringification her zaman değil yorum yapmak için kullanılabilir! Bu nedenle, her satırı hazırlayan standarda bir # ile bağlı kalmak daha güvenlidir.

İşte bir örnek:

test1 = [1, 2, 3, 4,]       # test1 contains 4 integers

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

Python 2.7.13'te:

Tek:

"A sample single line comment "

Çok satırlı:

"""
A sample
multiline comment
on PyCharm
"""
3
A.G

Bunu deneyebilirsiniz (alıntı yapılırken, ilk soruya giriş ' ile belirtilmelidir)

"""
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)

""" arasında kalanlar yorumlanacaktır.

Tek satırlı yorumlar arıyorsanız o zaman #.

3
Kaushik Holla

Nasıl yorum yapılır: 

'''
   Comment what you want here
'''

veya

 """
    Comment what you want here
 """
3
Ananda

Çok satırlı yorumların böyle bir özelliği yoktur. #, tek bir kod satırını yorumlamanın tek yoludur . Çoğunuz, çözüm olarak '' 'yorum' '' yanıtını verdiniz. Python'da iş görünse de dahili olarak '' 'göründüğü halde, # kullanarak yorumlayıcıyı görmezden gelmeyen normal bir dizge olarak satırları alır.

Resmi belgelere buradan göz atın

2
RATAN KUMAR

Evet, ikisini birden kullanmak iyidir

'''
Comments
'''

ve

""" 
Comments
"""

Ancak, bir IDE'de çalıştırırken hatırlamanız gereken tek şey, birden fazla satır kodu olarak kabul edilecek dosyanın tamamını 'RUN' (bas) olarak yapmanız gerekir. Satır satır 'RUN' düzgün çalışmaz ve bir hata gösterir.

0
Rajkamal Mishra

'' 'Multiline yorum BURAYA başladı

import tkinter as tk
root = tk.Tk()
w = tk.Label( text="Hello Tkinter")

logo = tk.PhotoImage(file="Python.PNG")

w1 = tk.Label(root, image=logo).pack(side="right")
explanation = """At Present, only GIF and PPM/PGM are supported but am
trying it with PNG. Interface does exit to allow image file to be added easily."""

w2 = tk.Label(root, justify=tk.LEFT,padx = 0, text=explanation).pack(side="left")
root.mainloop()

'' 'Çok satırlı yorum BURADA sona eriyor ... yukarıdaki kod çalışmaz ve bir yorum anlamına gelir

0
Sham Pat

Yorumlamak istediğiniz satırları seçin ve ardından 'CTRL +?' subtime editöründeki python kodunu yorumlamak veya açmak Tek satır için 'shift + #' kullanabilirsiniz.

0
Tarjeet Singh

Python içindeki satır içi yorumlar karma karakteriyle başlar.

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

Merhaba!

Bir dize değişmezi içindeki bir karma karakterinin yalnızca karma bir karakter olduğunu unutmayın.

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

Acil arama yapmak için 100 numarayı arayın.

Tek veya çok satırlı yorumlar için bir karma karakteri de kullanılabilir.

hello = "Hello"
world = "World"
# first print hello
# and print world
print(hello)
print(world)

Merhaba

Dünya

Dokümanları desteklemek için metni üçlü çift tırnak içine alın.

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"))

Merhaba John!

Blok yorumları için metni üçlü tek tırnak işareti içine alın.

'''
I don't care the params and
docstrings here.
'''
0
Madan Sapkota

Python içindeki birden fazla kod satırını yorumlamak için, her satırda basitçe # tek satırlı yorum kullanmaktır:

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

Python harfine “uygun” çok satırlı yorumlar yazmak için """ sözdizimi Python ile çok satırlı dizeler kullanmak, _ belge dizeleri (veya dokümanlar) özelliğine sahiptir. Programcılara her Python modülü, işlevi, sınıfı ve yöntemiyle hızlı notlar eklemenin kolay bir yolunu sunar.

'''
This is
multiline
comment
'''

Ayrıca, docstring'e böyle bir sınıf nesnesiyle erişebileceğinizi de unutmayın

myobj.__doc__
0
shafik

VS Code evrensel resmi çok hatlı yorum geçişi.

macOS: Önce kod bloğunu seçin +/

Windows: Kod bloğunu seçin Ctrl+/

0
tymac

PyCharm IDE'yi kullanma.

commentNAME _ ve uncommentNAME _ kod satırlarını Ctrl +/tuşlarını kullanarak yapabilirsiniz. Ctrl +/ mevcut satırı veya seçilen birkaç satırı tek satırda yorumlar ({# in Django templates, or # in Python scripts) ile yorumlar. Pressing Ctrl+Shift+/ bir Django şablonunda seçilen kaynak kodu bloğu için bloğu {% comment %} and {% endcomment %} etiketleriyle çevreler.


n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)

print("Loop ended.")

Tüm satırları seçin, sonra tuşuna basınCtrl + /


# n = 5
# while n > 0:
#     n -= 1
#     if n == 2:
#         break
#     print(n)

# print("Loop ended.")
0
0m3r

Python'da çok satırlı bir yorum bulunmuyor. Aşağıdaki örnek, sözdizimsel hatalar için Python tarafından doğrulanmış atanmamış bir dizeden oluşur. NotePad++ gibi az sayıdaki metin editörü bize yazılı bir kod parçasını veya sözcükleri yorumlamamız için kısayollar sağlar.

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

Ayrıca, CTRL + K yorumu engellemek için Notepad++ içindeki bir kısayol, seçimin altındaki her satırın önüne bir # ekler. CTRL + SHIFTK blok uncomment için.

0
YouKnowWhoIAm

Python'da çok satırlı yorum: Benim için hem '' 'hem de "" "çalıştı

Ör:

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

Ör:

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