# زبان های اسکریپتی > Python >  Self در برنامه نویسی پایتون به صورت شی گرا به چه معنیست ؟

## who are you

سلام
Self در برنامه نویسی پایتون به صورت شی گرا به چه معنیست ؟ چه کاری انجام میده و وجودش برای چیه؟
اونکه __ میذارن قبلش برای چیه و کارش چیست؟
ممنون میشم تا جایی که میتونید کامل توضیح بدید خیلی مبتدی  :قلب:

----------


## serj1975

ابتدا class تعریف میشود و سپس object ها با تعریف کلاس ساخته میشوند. مثال مشابه آن: class قالب کیک و object خود کیک. حال در تعریف کلاس متدها و متغییرها (Instance Variables) تعریف میشوند. برای دسترسی به متدها و instance variables در دیگر متدهای تعریف شده از self استفاده میشود


class Sample(object):
    
    def __init__(self):
        self.sum = 0.0
        self.avg = 0.0
        
    def calc_add(self,a,b):
        self.sum = a + b
        
    def calc_avg(self,a,b):
        self.avg = (a + b) / 2
        
    def print_sum(self):
        print(self.sum)
        
    def print_avg(self):
        print(self.avg)
        
        
obj1 = Sample()
obj1.calc_add(2,3)
obj1.calc_avg(2,3)
obj1.print_sum()
obj1.print_avg()

----------


## who are you

ساده تر توضیح میدید لطفا

----------


## serj1975

در ادامه مثالی که آورده شده است:


obj2 = Sample()
obj3 = Sample()
obj4 = Sample()


چندین object از کلاس Sample ایجاد شده است.
self به object ایجاد شده اشاره میکند. یعنی بجای اینکه در کد کلاس که هنوز ازش object ای ایجاد نشده است و نمی دانم که چه object ای با چه نامی ایجاد خواهد شد، برای اشاره به object ای که ایجاد خواهد شده از self استفاده میشود (معادل آن this در C#‎ میباشد)

----------

