Best Python code snippet using assertpy_python
01_first.py
Source:01_first.py
...70t = 1071def test():72 global t73 t = 574 def test_nested():75 t = 376 print(t)77 test_nested()78 print(t)79test()80print(t)81Há 3 atribuições à variável *t* no código acima. Na função *test*, o operador **global** faz com que a atribuição *t = 5* seja aplicada à variável *t* global. Mas isso não afeta a atribuição *t = 3* da função aninhada *test_nested*. Para que a terceira atribuiçãose aplique à mesma variável, é necessário usar **global** novamente. 82t = 1083def test():84 global t85 t = 586 def test_nested():87 global t88 t = 389 print(t)90 test_nested()91 print(t)92test()93print(t)94O operador **global**, como seu nome indica, só se aplica a variáveis do escopo global. Se a variável *t* tivesse sido definida na função *test*, a função *test_nested* não poderia atribuir um valor a ela por meio do uso de **global**. Exemplo:95def test():96 t = 597 def test_nested():98 global t99 t = 3100 print(t)101 test_nested()102 print(t)103test()104print(t)105Note que no código acima, a linha **global** *t* dentro de *test_nested* cria uma nova variável global e não modifica a variável *t* criada por *test*. Caso deseje-se modificar o valor da variável *t* definida no escopo acima, usa-se o operador **nonlocal**:106def test():107 t = 5108 def test_nested():109 nonlocal t110 t = 3111 print(t)112 test_nested()113 print(t)114test()115Outro exemplo, retirado da [documentação de Python](https://docs.python.org/3/tutorial/classes.html).116def scope_test():117 def do_local():118 spam = "local spam"119 def do_nonlocal():120 nonlocal spam121 spam = "nonlocal spam"122 def do_global():123 global spam124 spam = "global spam"125 spam = "test spam"126 do_local()...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!