Python Language
उपयोगकर्ता-परिभाषित तरीके
खोज…
उपयोगकर्ता-परिभाषित विधि ऑब्जेक्ट बनाना
उपयोगकर्ता-परिभाषित विधि ऑब्जेक्ट तब बनाया जा सकता है जब एक वर्ग की विशेषता (शायद उस वर्ग के एक उदाहरण के माध्यम से), अगर वह विशेषता एक उपयोगकर्ता-परिभाषित फ़ंक्शन ऑब्जेक्ट, एक अनबाउंड उपयोगकर्ता-परिभाषित विधि ऑब्जेक्ट या एक क्लास विधि ऑब्जेक्ट है।
class A(object):
# func: A user-defined function object
#
# Note that func is a function object when it's defined,
# and an unbound method object when it's retrieved.
def func(self):
pass
# classMethod: A class method
@classmethod
def classMethod(self):
pass
class B(object):
# unboundMeth: A unbound user-defined method object
#
# Parent.func is an unbound user-defined method object here,
# because it's retrieved.
unboundMeth = A.func
a = A()
b = B()
print A.func
# output: <unbound method A.func>
print a.func
# output: <bound method A.func of <__main__.A object at 0x10e9ab910>>
print B.unboundMeth
# output: <unbound method A.func>
print b.unboundMeth
# output: <unbound method A.func>
print A.classMethod
# output: <bound method type.classMethod of <class '__main__.A'>>
print a.classMethod
# output: <bound method type.classMethod of <class '__main__.A'>>
जब विशेषता एक उपयोगकर्ता-परिभाषित विधि ऑब्जेक्ट है, तो एक नई विधि ऑब्जेक्ट केवल तब बनाई जाती है जब जिस वर्ग से इसे पुनर्प्राप्त किया जा रहा है वह उसी तरह का है, या एक व्युत्पन्न वर्ग है, मूल विधि ऑब्जेक्ट में संग्रहीत वर्ग; अन्यथा, मूल विधि ऑब्जेक्ट का उपयोग उसी के रूप में किया जाता है।
# Parent: The class stored in the original method object
class Parent(object):
# func: The underlying function of original method object
def func(self):
pass
func2 = func
# Child: A derived class of Parent
class Child(Parent):
func = Parent.func
# AnotherClass: A different class, neither subclasses nor subclassed
class AnotherClass(object):
func = Parent.func
print Parent.func is Parent.func # False, new object created
print Parent.func2 is Parent.func2 # False, new object created
print Child.func is Child.func # False, new object created
print AnotherClass.func is AnotherClass.func # True, original object used
कछुए का उदाहरण
निम्नलिखित एक उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन का उपयोग करने का एक उदाहरण है जिसे आसानी से स्क्रिप्ट में कई (times) बार कहा जाता है।
import turtle, time, random #tell python we need 3 different modules
turtle.speed(0) #set draw speed to the fastest
turtle.colormode(255) #special colormode
turtle.pensize(4) #size of the lines that will be drawn
def triangle(size): #This is our own function, in the parenthesis is a variable we have defined that will be used in THIS FUNCTION ONLY. This fucntion creates a right triangle
turtle.forward(size) #to begin this function we go forward, the amount to go forward by is the variable size
turtle.right(90) #turn right by 90 degree
turtle.forward(size) #go forward, again with variable
turtle.right(135) #turn right again
turtle.forward(size * 1.5) #close the triangle. thanks to the Pythagorean theorem we know that this line must be 1.5 times longer than the other two(if they are equal)
while(1): #INFINITE LOOP
turtle.setpos(random.randint(-200, 200), random.randint(-200, 200)) #set the draw point to a random (x,y) position
turtle.pencolor(random.randint(1, 255), random.randint(1, 255), random.randint(1, 255)) #randomize the RGB color
triangle(random.randint(5, 55)) #use our function, because it has only one variable we can simply put a value in the parenthesis. The value that will be sent will be random between 5 - 55, end the end it really just changes ow big the triangle is.
turtle.pencolor(random.randint(1, 255), random.randint(1, 255), random.randint(1, 255)) #randomize color again
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow