Local Variable : In python if you define a variable inside constructor or method this is called Local variable
NOTE 1 : : method and constructor args is also called Local variable
NOTE 2 : : Local Variable Scope inside method and constructor only
NOTE 3 : : Local Variable Memory allocate when method and constructor class
class LocalVariable: def __init__(self,fname): lname="xyz" #Local Variable print(fname+" "+lname) e1=LocalVariable("abc")
abc xyz
Class Variable : In python if you define a variable inside class but out side method and constructor is called class variable
NOTE 1 : class variable access with class name and self keyword
NOTE 2 : class Variable Scope inside class only
NOTE 3 : It recmmonded to access the class variable with class name
NOTE 3 : : Class Variable Memory allocate when dot pyc file loaded
class ClassVariable: i=1 #class variable def __init__(self): print(ClassVariable.i," ",self.i) def getMethod(self): print(ClassVariable.i," ",self.i) e1=ClassVariable().getMethod()
Instance Variable :In python if you define a variable inside method and constructor using self keyword is called Instance Variable
NOTE 1 : Instance Variable Scope inside class only
NOTE 2 : Instance Variable Memory allocate when object create
class InstanceVariable: def __init__(self,i): self.i=i # instance variable def getMethod(self): print(self.i) e1=InstanceVariable(10).getMethod()
10
Global Variable : In python if you define a variable outside class is called globale variable
NOTE 1 : is side function to declear global variable using global keyword
NOTE 2 : global variable direct access by name
NOTE 3 : global variable Scope in dot py file
NOTE 4 : inside the method once we are using global variable, in this case with the same name it is not possible to declare Local variable
abc=100 class InstanceVariable: def __init__(self): print(abc) def getMethod(self): print(abc) e1=InstanceVariable().getMethod() print(abc)
100 100 100
comName="XYZ" localtion="UP" class B10: def __init__(self): comName="ABC" localtion="Pune" print(comName," ",localtion) b10=B10()
ABC Pune
CASE 1 :
comName="XYZ" localtion="UP" class B10: def __init__(self): print(comName," ",localtion) comName="ABC" localtion="Pune" print(comName," ",localtion) b10=B10()
UnboundLocalError: local variable 'comName' referenced before assignment
i=10 class B10: def __init__(self): i=i+20 print(i) b10=B10()
UnboundLocalError: local variable 'i' referenced before assignment
CASE 1 :
In side function or constructor to repersent the global variable using global keyword
comName="XYZ" localtion="UP" class B10: def __init__(self): global comName,localtion print(comName," ",localtion) comName="ABC" localtion="Pune" print(comName," ",localtion) b10=B10() print(comName," ",localtion)
XYZ UP ABC Pune ABC Pune
in side the inner to repersent outer function variable using localvariable
def outerFunction(): name="Ashu" def innerFunction(): nonlocal name name="soonu" print(name) innerFunction() print(name) outerFunction()
Ashu soonu
python global vs nonlocal keyword
name="ABC" def outerFunction(): fname="Ashu" def innerFunction(): nonlocal fname fname="soonu" global name name="XYZ" print(name) innerFunction() print(name) outerFunction() print(name)
ABC XYZ XYZ
comName="XYZ" localtion="UP" class B10: comName="APP" localtion="California" def __init__(self,comName,localtion): self.comName=comName self.localtion=localtion def displayAllVaraible(self): comName="ABC" localtion="pune" #as local variable print(comName+" "+localtion) #instance variable print(self.comName+" "+self.localtion) #class variable comName and localtion print(B10.comName+" "+B10.localtion) #as globals variable print(globals()['comName']+" "+globals()['localtion']) b10=B10("JBBAPP","Germany") b10.displayAllVaraible()
ABC pune JBBAPP Germany APP California XYZ UP