Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- >>> dct = {'x': 1, 'y': 2, 'z': 3}
- >>> dct
- {'y': 2, 'x': 1, 'z': 3}
- >>> dct["y"]
- 2
- >>> x = "spam"
- >>> z = {x: "eggs"}
- >>> z["spam"]
- 'eggs'
- var1 = 'foo'
- var2 = 'bar'
- var3 = 'baz'
- ...
- l = ['foo', 'bar', 'baz']
- print(l[1]) # prints bar, because indices start at 0
- l.append('potatoes') # l is now ['foo', 'bar', 'baz', 'potatoes']
- obj.spam = 'eggs'
- name = 'spam'
- getattr(obj, name) # returns 'eggs'
- >>> a = 10
- >>> globals()['a']
- 10
- $foo = "bar"
- $$foo = "baz"
- mydict = {}
- foo = "bar"
- mydict[foo] = "baz"
- my_calculator.button_0 = tkinter.Button(root, text=0)
- my_calculator.button_1 = tkinter.Button(root, text=1)
- my_calculator.button_2 = tkinter.Button(root, text=2)
- ...
- for i in range(10):
- my_calculator.('button_%d' % i) = tkinter.Button(root, text=i)
- my_calculator.buttons = []
- for i in range(10):
- my_calculator.buttons.append(tkinter.Button(root, text=i))
- my_calculator.buttons = [tkinter.Button(root, text=i) for i in range(10)]
- keyword_1 = 'apple'
- keyword_2 = 'banana'
- if query == keyword_1 or query == keyword_2:
- print('Match.')
- keywords = {'apple', 'banana'}
- if query in keywords:
- print('Match.')
- #using dictionary
- variables = {}
- variables["first"] = 34
- variables["second"] = 45
- print variables["first"], variables["second"]
- #using namedtuple
- Variables = namedtuple('Variables', ['first', 'second'])
- vars = Variables(34, 45)
- print vars.first, vars.second
- def var_of_var(k, v):
- globals()[k] = v
- print variable_name # NameError: name 'variable_name' is not defined
- some_name = 'variable_name'
- globals()[some_name] = 123
- print variable_name # 123
- some_name = 'variable_name2'
- var_of_var(some_name, 456)
- print variable_name2 # 456
- import sys
- current_module = module = sys.modules[__name__] # i.e the "file" where your code is written
- setattr(current_module, 'variable_name', 15) # 15 is the value you assign to the var
- print(variable_name) # >>> 15, created from a string
- class Variables(object):
- def __init__(self):
- self.foo = "initial_variable"
- def create_new_var(self,name,value):
- setattr(self,name,value)
- def get_var(self,name):
- if hasattr(self,name):
- return getattr(self,name)
- else:
- raise("Class does not have a variable named: "+name)
- v = Variables()
- v.get_var("foo")
- v.create_new_var(v.foo,"is actually not initial")
- v.initial_variable
- from types import SimpleNamespace
- variables = {"b":"B","c":"C"}
- a = SimpleNamespace(**v)
- setattr(a,"g","G")
- a.g = "G+"
- something = a.a
- from variableVariablesManager import VariableVariablesManager
- myVars = VariableVariablesManager()
- myVars['test'] = 25
- print(myVars['test'])
- # define a const variable
- myVars.defineConstVariable('myconst', 13)
- try:
- myVars['myconst'] = 14 # <- this raises an error, since 'myconst' must not be changed
- print("not allowed")
- except AttributeError as e:
- pass
- # rename a variable
- myVars.renameVariable('myconst', 'myconstOther')
- # preserve locality
- def testLocalVar():
- myVars = VariableVariablesManager()
- myVars['test'] = 13
- print("inside function myVars['test']:", myVars['test'])
- testLocalVar()
- print("outside function myVars['test']:", myVars['test'])
- # define a global variable
- myVars.defineGlobalVariable('globalVar', 12)
- def testGlobalVar():
- myVars = VariableVariablesManager()
- print("inside function myVars['globalVar']:", myVars['globalVar'])
- myVars['globalVar'] = 13
- print("inside function myVars['globalVar'] (having been changed):", myVars['globalVar'])
- testGlobalVar()
- print("outside function myVars['globalVar']:", myVars['globalVar'])
- myVars = VariableVariablesManager(enforceSameTypeOnOverride = True)
- myVars['test'] = 25
- myVars['test'] = "Cat" # <- raises Exception (different type on overwriting)
- # some list of variable names
- L = ['a', 'b', 'c']
- class Variables:
- def __init__(self, L):
- for item in L:
- self.__dict__[item] = 100
- v = Variables(L)
- print(v.a, v.b, v.c)
- #will produce 100 100 100
Add Comment
Please, Sign In to add comment