जब यह कंस्ट्रक्टर, और असाइनमेंट, और मेथड कॉल्स की बात आती है, तो PyCharm IDE मेरे सोर्स कोड का विश्लेषण करने और यह पता लगाने में बहुत अच्छा है कि प्रत्येक वेरिएबल किस प्रकार का होना चाहिए। मुझे यह पसंद है जब यह सही है, क्योंकि यह मुझे अच्छा कोड पूरा करने और पैरामीटर जानकारी देता है, और यह मुझे चेतावनी देता है अगर मैं एक विशेषता तक पहुंचने का प्रयास करता हूं जो मौजूद नहीं है।
लेकिन जब मापदंडों की बात आती है, तो यह कुछ भी नहीं जानता है। कोड पूरा करने वाले ड्रॉपडाउन कुछ भी नहीं दिखा सकते हैं, क्योंकि वे नहीं जानते हैं कि पैरामीटर किस प्रकार का होगा। कोड विश्लेषण चेतावनी के लिए नहीं देख सकते हैं।
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
peasant = Person("Dennis", 37)
# PyCharm knows that the "peasant" variable is of type Person
peasant.dig_filth() # shows warning -- Person doesn't have a dig_filth method
class King:
def repress(self, peasant):
# PyCharm has no idea what type the "peasant" parameter should be
peasant.knock_over() # no warning even though knock_over doesn't exist
King().repress(peasant)
# Even if I call the method once with a Person instance, PyCharm doesn't
# consider that to mean that the "peasant" parameter should always be a Person
यह एक निश्चित मात्रा में समझ में आता है। अन्य कॉल साइटें उस पैरामीटर के लिए कुछ भी पारित कर सकती हैं। लेकिन अगर मेरा तरीका किसी पैरामीटर के प्रकार के होने की अपेक्षा करता है, तो कहो, pygame.Surface
मैं यह संकेत देना चाहूंगा कि किसी भी तरह PyCharm को सूचित कर सकूं, इसलिए यह मुझे Surface
उसके कोड-पूरा ड्रॉपडाउन में सभी विशेषताओं को दिखा सकता है , और चेतावनियों को उजागर कर सकता है मैं गलत तरीके से कॉल करता हूं, और इसी तरह।
क्या कोई ऐसा तरीका है जिससे मैं PyCharm को एक संकेत दे सकता हूं, और कह सकता हूं कि "psst, यह पैरामीटर टाइप X का होना चाहिए"? (या शायद, गतिशील भाषाओं की भावना में, "यह पैरामीटर एक एक्स की तरह खत्म करने के लिए माना जाता है"; मैं उस के साथ ठीक होगा।)
EDIT: क्रेजीकोडर का जवाब, नीचे दिया गया है। मेरे जैसे किसी भी नवागंतुक के लिए जो त्वरित सारांश चाहते हैं, यहां यह है:
class King:
def repress(self, peasant):
"""
Exploit the workers by hanging on to outdated imperialist dogma which
perpetuates the economic and social differences in our society.
@type peasant: Person
@param peasant: Person to repress.
"""
peasant.knock_over() # Shows a warning. And there was much rejoicing.
संबंधित भाग @type peasant: Person
डॉकस्ट्रिंग की रेखा है।
यदि आप फ़ाइल> सेटिंग्स> पायथन इंटीग्रेटेड टूल्स में भी जाते हैं और "डॉकस्ट्रिंग फॉर्मेट" को "एप्टीटेक्स्ट" पर सेट करते हैं, तो पाइक्रोम का व्यू> क्विक डॉक्यूमेंटेशन लुकअप पैरामीटर-इनफॉर्मेशन को प्रिंट करने के बजाय सिर्फ सभी @ -लाइन को प्रिंट करने के बजाय प्रिंट करेगा।
@param xx: yyy
बन जाता है:param xx: yyy
। जेटब्राइन्स