Bir fonksiyonda global de─či┼čkenleri kullanma


Al─▒nan cevaba git


Bir fonksiyonda global bir de─či┼čkeni nas─▒l yaratabilir veya kullanabilirim?

Bir fonksiyonda global bir de─či┼čken yarat─▒rsam, bu global de─či┼čkeni ba┼čka bir fonksiyonda nas─▒l kullanabilirim? Genel de─či┼čkeni, eri┼čmesi gereken i┼člevin yerel bir de─či┼čkeninde saklamam gerekir mi?


2912









Cevap say─▒s─▒n─▒ say: 18






Genel bir de─či┼čkeni, global kendisine atanan her i┼člevde oldu─ču gibi ilan ederek di─čer i┼člevlerde kullanabilirsiniz :

 globvar = 0

def set_globvar_to_one():
    global globvar    # Needed to modify global copy of globvar
    globvar = 1

def print_globvar():
    print(globvar)     # No need for global declaration to read value of globvar

set_globvar_to_one()
print_globvar()       # Prints 1
 

Bunun nedenini, k├╝resel de─či┼čkenler ├žok tehlikeli oldu─ču i├žin Python'un, global anahtar kelimeyi a├ž─▒k├ža talep ederek oynad─▒─č─▒n─▒z ┼čeyin ger├žekten oldu─čunu bildi─činizden emin olmak istedi─čini tahmin ediyorum .

Mod├╝ller aras─▒nda global bir de─či┼čkeni payla┼čmak istiyorsan─▒z di─čer cevaplar─▒ g├Âr├╝n.


4019







Durumunuzu do─čru anl─▒yorsam, g├Ârd├╝─č├╝n├╝z ┼čey Python'un yerel (i┼člev) ve genel (mod├╝l) ad alanlar─▒n─▒ i┼čleme bi├žiminin sonucudur.

Diyelim ki b├Âyle bir mod├╝l var:

 # sample.py
myGlobal = 5

def func1():
    myGlobal = 42

def func2():
    print myGlobal

func1()
func2()
 

Bunu 42 yazd─▒rabilirsiniz, bunun yerine 5 yazd─▒rabilirsiniz. Daha ├Ânce de belirtildi─či gibi, e─čer bir ' global ' bildirim eklerseniz func1() , o func2() zaman 42 yazd─▒racaks─▒n─▒z.

 def func1():
    global myGlobal
    myGlobal = 42
 

Burada olan, Python'un , bir i┼člev i├žinde herhangi bir yere atanm─▒┼č herhangi bir ad─▒n, a├ž─▒k├ža aksi belirtilmedi─či s├╝rece, bu i┼čleve yerel oldu─čunu varsayd─▒─č─▒d─▒r . Yaln─▒zca bir addan okuyorsa ve ad yerel olarak mevcut de─čilse, ad─▒ herhangi bir kapsamda (├Ârne─čin, mod├╝l├╝n global kapsam─▒) aramaya ├žal─▒┼č─▒r.

Bu myGlobal nedenle, 42 ismini atad─▒─č─▒n─▒zda , Python ayn─▒ ismin global de─či┼čkenini g├Âlgeleyen yerel bir de─či┼čken yarat─▒r. Yerel kapsam d─▒┼č─▒na gider ve oldu─ču ├ž├Âp toplama zaman func1() d├Âner; bu arada, func2() hi├žbir zaman (de─či┼čtirilmemi┼č) global addan ba┼čka bir ┼čey g├Âremezsiniz. Not Bu ad bir karar olmad─▒─č─▒n─▒ zaman─▒nda derleme zaman─▒nda olur - sen de─čerini okumak olsayd─▒ myGlobal i├žerden func1() buna atamadan ├Ânce, bir al─▒rd─▒m UnboundLocalError Python zaten yerel bir de─či┼čken olmas─▒ gerekti─čine karar verdi ├ž├╝nk├╝, ancak hen├╝z bununla ili┼čkili bir de─čere sahip de─čil. Ancak ' global ' ifadesini kullanarak Python'a, yerel olarak atamak yerine ad─▒ ba┼čka yerde aramas─▒ gerekti─čini s├Âylersiniz.

(Bu davran─▒┼č─▒n b├╝y├╝k ├Âl├ž├╝de yerel ad alanlar─▒n─▒n optimizasyonundan kaynakland─▒─č─▒na inan─▒yorum - bu davran─▒┼č olmadan, PythonÔÇÖun VMÔÇÖsi, bir fonksiyonun i├žine yeni bir ad atand─▒─č─▒nda en az ├╝├ž ad aramas─▒ yapmas─▒ gerekecekti (ad─▒n kullan─▒lmamas─▒n─▒ sa─člamak i├žin (zaten mod├╝l / yerle┼čik seviyede mevcut de─čil), bu da ├žok yayg─▒n bir i┼člemi ├Ânemli ├Âl├ž├╝de yava┼člat─▒r.)


736







Ad alanlar─▒ kavram─▒n─▒ ke┼čfetmek isteyebilirsiniz . Python'da, mod├╝l global verilerin do─čal yeridir :

Her mod├╝l├╝n, mod├╝lde tan─▒mlanan t├╝m fonksiyonlar taraf─▒ndan global sembol tablosu olarak kullan─▒lan kendi ├Âzel sembol tablosu vard─▒r. Bu nedenle, bir mod├╝l├╝n yazar─▒, bir kullan─▒c─▒n─▒n genel de─či┼čkenleri ile kazayla ├žak─▒┼čmalardan endi┼če etmeden mod├╝ldeki global de─či┼čkenleri kullanabilir. ├ľte yandan, ne yapt─▒─č─▒n─▒z─▒ biliyorsan─▒z, bir mod├╝l├╝n global de─či┼čkenlerine fonksiyonlar─▒na at─▒fta bulunmak i├žin kullan─▒lanla ayn─▒ ┼čekilde dokunabilirsiniz modname.itemname .

Global bir mod├╝l i├žinde ├Âzel bir kullan─▒m burada a├ž─▒klanmaktad─▒r - Genel de─či┼čkenleri mod├╝ller aras─▒nda nas─▒l payla┼č─▒r─▒m? ve eksiksiz olmas─▒ i├žin i├žerikler burada payla┼č─▒l─▒r:

Tek bir program i├žindeki mod├╝ller aras─▒nda bilgi payla┼čman─▒n kurall─▒ yolu, ├Âzel bir yap─▒land─▒rma mod├╝l├╝ olu┼čturmakt─▒r (genellikle config veya cfg olarak adland─▒r─▒l─▒r ). Konfig├╝rasyon mod├╝l├╝n├╝ uygulaman─▒z─▒n t├╝m mod├╝llerine aktarman─▒z yeterlidir; mod├╝l daha sonra global bir isim olarak kullan─▒labilir hale gelir. Her mod├╝l├╝n yaln─▒zca bir ├Ârne─či oldu─čundan, mod├╝l nesnesine yap─▒lan de─či┼čiklikler her yere yans─▒t─▒l─▒r. ├ľrne─čin:

Dosya: config.py

 x = 0   # Default value of the 'x' configuration setting
 

Dosya: mod.py

 import config
config.x = 1
 

Dosya: main.py

 import config
import mod
print config.x
 

201







Python, hangi kapsam─▒ yerel ve global aras─▒nda bir de─či┼čkene y├╝klemesi gerekti─čine karar vermek i├žin basit bir sezgisel y├Ântem kullan─▒r. Bir ├Âdevin sol taraf─▒nda bir de─či┼čken ad─▒ g├Âr├╝n├╝r, ancak genel olarak bildirilmezse, yerel oldu─ču varsay─▒l─▒r. Bir ├Âdevin sol taraf─▒nda g├Âr├╝nmezse, genel oldu─ču varsay─▒l─▒r.

 >>> import dis
>>> def foo():
...     global bar
...     baz = 5
...     print bar
...     print baz
...     print quux
... 
>>> dis.disassemble(foo.func_code)
  3           0 LOAD_CONST               1 (5)
              3 STORE_FAST               0 (baz)

  4           6 LOAD_GLOBAL              0 (bar)
              9 PRINT_ITEM          
             10 PRINT_NEWLINE       

  5          11 LOAD_FAST                0 (baz)
             14 PRINT_ITEM          
             15 PRINT_NEWLINE       

  6          16 LOAD_GLOBAL              1 (quux)
             19 PRINT_ITEM          
             20 PRINT_NEWLINE       
             21 LOAD_CONST               0 (None)
             24 RETURN_VALUE        
>>> 
 

Bir ├Âdevin sol taraf─▒nda g├Âr├╝nen baz'─▒n foo() tek LOAD_FAST de─či┼čken oldu─čunu g├Âr├╝n.


85







Bir fonksiyondaki global bir de─či┼čkene at─▒f yapmak istiyorsan─▒z, hangi de─či┼čkenlerin global oldu─čunu bildirmek i├žin global anahtar s├Âzc├╝─č├╝n├╝ kullanabilirsiniz . Her durumda kullanmak zorunda de─čilsiniz (burada birinin yanl─▒┼č iddia etti─či gibi) - bir ifadede ba┼čvurulan ad yerel kapsamda bulunam─▒yorsa veya bu fonksiyonun tan─▒mland─▒─č─▒ fonksiyonlarda kapsamlar bulunmuyorsa, genel olarak aran─▒r. de─či┼čkenler.

Bununla birlikte, i┼člevde global olarak bildirilmeyen yeni bir de─či┼čkene atad─▒ysan─▒z, dolayl─▒ olarak yerel olarak bildirilir ve var olan herhangi bir global de─či┼čkeni ayn─▒ adla g├Âlgeleyebilir.

Ayr─▒ca, global de─či┼čkenler, aksi takdirde talepte bulunan baz─▒ OOP i┼čaretlerinin aksine, ├Âzellikle de OOP'un a┼č─▒r─▒ y├╝klendi─či daha k├╝├ž├╝k betikler i├žin faydal─▒d─▒r.


56


2009-01-08





Zaten var olan cevaplara ek olarak ve bunu daha da kafa kar─▒┼čt─▒r─▒c─▒ hale getirmek i├žin:

Python'da, yaln─▒zca bir fonksiyon i├žinde referans verilen de─či┼čkenler tamamen globaldir . Bir de─či┼čkenin, i┼člev g├Âvdesinde herhangi bir yerde yeni bir de─čer atanmas─▒ durumunda, bunun yerel oldu─ču varsay─▒l─▒r . E─čer bir de─či┼čkene fonksiyonun i├žine yeni bir de─čer atan─▒rsa, de─či┼čken dolayl─▒ olarak yereldir ve a├ž─▒k├ža onu 'global' olarak ilan etmeniz gerekir.

─░lk ba┼čta biraz ┼ča┼č─▒rt─▒c─▒ olsa da, bir an─▒n de─čerlendirmesi bunu a├ž─▒kl─▒yor. Bir yandan, atanan de─či┼čkenler i├žin global isteme, istenmeyen yan etkilere kar┼č─▒ bir ├žubuk sa─člar. ├ľte yandan, t├╝m global referanslar i├žin global gerekliyse, her zaman global kullan─▒yor olmal─▒s─▒n─▒z. Bir yerle┼čik i┼čleve veya i├že aktar─▒lan bir mod├╝l├╝n bir bile┼čenine yap─▒lan her referans─▒ global olarak beyan etmeniz gerekir. Bu kar─▒┼č─▒kl─▒k, k├╝resel etkilerin yan etkileri belirleme konusundaki faydas─▒n─▒ ortadan kald─▒racakt─▒r.

Kaynak: Python'da yerel ve global de─či┼čkenler i├žin kurallar nelerdir? .


42







Bir fonksiyonda global bir de─či┼čken yarat─▒rsam, bu de─či┼čkeni ba┼čka bir fonksiyonda nas─▒l kullanabilirim?

A┼ča─č─▒daki fonksiyonla bir global yaratabiliriz:

 def create_global_variable():
    global global_variable # must declare it to be a global first
    # modifications are thus reflected on the module's global scope
    global_variable = 'Foo' 
 

Bir i┼člev yazmak asl─▒nda kodunu ├žal─▒┼čt─▒rmaz. Bu y├╝zden create_global_variable i┼člev diyoruz :

 >>> create_global_variable()
 

De─či┼čiklik yapmadan globals kullanmak

Hangi nesneyi i┼čaret etti─čini beklemiyorsan─▒z, sadece kullanabilirsiniz:

├ľrne─čin,

 def use_global_variable():
    return global_variable + '!!!'
 

ve ┼čimdi global de─či┼čkeni kullanabiliriz:

 >>> use_global_variable()
'Foo!!!'
 

Global de─či┼čkeni bir fonksiyonun i├žinden de─či┼čtirme

Global de─či┼čkeni farkl─▒ bir nesneye i┼čaret etmek i├žin global anahtar kelimeyi tekrar kullanman─▒z gerekir:

 def change_global_variable():
    global global_variable
    global_variable = 'Bar'
 

Bu i┼člevi yazd─▒ktan sonra, asl─▒nda onu de─či┼čtiren kodun hala ├žal─▒┼čmad─▒─č─▒n─▒ unutmay─▒n.

 >>> use_global_variable()
'Foo!!!'
 

Yani i┼člevi ├ža─č─▒rd─▒ktan sonra:

 >>> change_global_variable()
 

k├╝resel de─či┼čkenin de─či┼čti─čini g├Ârebiliriz. global_variable Ad─▒ art─▒k i┼čaret 'Bar' :

 >>> use_global_variable()
'Bar!!!'
 

Python'da "global" in ger├žekten global olmad─▒─č─▒n─▒ - mod├╝l d├╝zeyinde sadece global oldu─čunu unutmay─▒n. Bu nedenle, yaln─▒zca global oldu─ču mod├╝llerde yaz─▒l─▒ i┼člevler i├žin kullan─▒labilir. ─░┼člevler, i├žinde bulunduklar─▒ mod├╝l├╝ hat─▒rlarlar, bu nedenle di─čer mod├╝llere d─▒┼ča aktar─▒ld─▒klar─▒nda, genel de─či┼čkenleri bulmak i├žin olu┼čturulduklar─▒ mod├╝le bakarlar.

Ayn─▒ ada sahip yerel de─či┼čkenler

Ayn─▒ ada sahip bir yerel de─či┼čken olu┼čturursan─▒z, genel bir de─či┼čkeni g├Âlgeleyecektir:

 def use_local_with_same_name_as_global():
    # bad name for a local variable, though.
    global_variable = 'Baz' 
    return global_variable + '!!!'

>>> use_local_with_same_name_as_global()
'Baz!!!'
 

Ancak bu yanl─▒┼č adland─▒r─▒lm─▒┼č yerel de─či┼čkeni kullanmak, genel de─či┼čkeni de─či┼čtirmez:

 >>> use_global_variable()
'Bar!!!'
 

Ne yapt─▒─č─▒n─▒z─▒ tam olarak bilmiyorsan─▒z ve bunu yapmak i├žin ├žok iyi bir nedeniniz olmad─▒k├ža, yerel de─či┼čkenleri globals ile ayn─▒ isimlerle kullanmaktan ka├ž─▒nmal─▒s─▒n─▒z. Hen├╝z b├Âyle bir sebeple kar┼č─▒la┼čmad─▒m.


37







Paralel uygulamada, ne oldu─čunu anlamad─▒─č─▒n─▒z takdirde global de─či┼čkenler beklenmeyen sonu├žlara neden olabilir. ├çok i┼člemli i┼člemlerde global bir de─či┼čken kullanman─▒n bir ├Ârne─či. Her i┼člemin de─či┼čkenin kendi kopyas─▒yla ├žal─▒┼čt─▒─č─▒n─▒ a├ž─▒k├ža g├Ârebiliriz:

 import multiprocessing
import os
import random
import sys
import time

def worker(new_value):
    old_value = get_value()
    set_value(random.randint(1, 99))
    print('pid=[{pid}] '
          'old_value=[{old_value:2}] '
          'new_value=[{new_value:2}] '
          'get_value=[{get_value:2}]'.format(
          pid=str(os.getpid()),
          old_value=old_value,
          new_value=new_value,
          get_value=get_value()))

def get_value():
    global global_variable
    return global_variable

def set_value(new_value):
    global global_variable
    global_variable = new_value

global_variable = -1

print('before set_value(), get_value() = [%s]' % get_value())
set_value(new_value=-2)
print('after  set_value(), get_value() = [%s]' % get_value())

processPool = multiprocessing.Pool(processes=5)
processPool.map(func=worker, iterable=range(15))
 

Çıktı:

 before set_value(), get_value() = [-1]
after  set_value(), get_value() = [-2]
pid=[53970] old_value=[-2] new_value=[ 0] get_value=[23]
pid=[53971] old_value=[-2] new_value=[ 1] get_value=[42]
pid=[53970] old_value=[23] new_value=[ 4] get_value=[50]
pid=[53970] old_value=[50] new_value=[ 6] get_value=[14]
pid=[53971] old_value=[42] new_value=[ 5] get_value=[31]
pid=[53972] old_value=[-2] new_value=[ 2] get_value=[44]
pid=[53973] old_value=[-2] new_value=[ 3] get_value=[94]
pid=[53970] old_value=[14] new_value=[ 7] get_value=[21]
pid=[53971] old_value=[31] new_value=[ 8] get_value=[34]
pid=[53972] old_value=[44] new_value=[ 9] get_value=[59]
pid=[53973] old_value=[94] new_value=[10] get_value=[87]
pid=[53970] old_value=[21] new_value=[11] get_value=[21]
pid=[53971] old_value=[34] new_value=[12] get_value=[82]
pid=[53972] old_value=[59] new_value=[13] get_value=[ 4]
pid=[53973] old_value=[87] new_value=[14] get_value=[70]
 

31







G├Âr├╝n├╝┼če g├Âre cevap her zaman basittir.

Tan─▒mda g├Âstermenin basit bir yolunu g├Âsteren k├╝├ž├╝k bir ├Ârnek mod├╝l main :

 def five(enterAnumber,sumation):
    global helper
    helper  = enterAnumber + sumation

def isTheNumber():
    return helper
 

Tan─▒mda nas─▒l g├Âsterilece─či main :

 import TestPy

def main():
    atest  = TestPy
    atest.five(5,8)
    print(atest.isTheNumber())

if __name__ == '__main__':
    main()
 

Bu basit kod ayn─▒ ┼čekilde ├žal─▒┼č─▒r ve ├žal─▒┼čt─▒r─▒l─▒r. Umut ediyorum bu yard─▒m eder.


22







S├Âyledi─činiz ┼čey ┼ču y├Ântemi kullanmakt─▒r:

 globvar = 5

def f():
    var = globvar
    print(var)

f()  # Prints 5
 

Ancak, daha iyi bir yol bu ┼čekilde global de─či┼čkeni kullanmakt─▒r:

 globavar = 5
def f():
    global globvar
    print(globvar)
f()   #prints 5
 

Her ikisi de ayn─▒ ├ž─▒kt─▒y─▒ verir.


21


2014-12-04





Kullanmak istedi─činiz her fonksiyonda global de─či┼čkene ba┼čvurman─▒z gerekir.

A┼ča─č─▒daki gibi:

 var = "test"

def printGlobalText():
    global var #wWe are telling to explicitly use the global version
    var = "global from printGlobalText fun."
    print "var from printGlobalText: " + var

def printLocalText():
    #We are NOT telling to explicitly use the global version, so we are creating a local variable
    var = "local version from printLocalText fun"
    print "var from printLocalText: " + var

printGlobalText()
printLocalText()
"""
Output Result:
var from printGlobalText: global from printGlobalText fun.
var from printLocalText: local version from printLocalText
[Finished in 0.1s]
"""
 

20







Global'i asl─▒nda yerel bir de─či┼čkende saklam─▒yorsunuz, sadece orijinal global referans─▒n─▒z─▒n referans ald─▒─č─▒ nesneye yerel bir referans olu┼čturuyorsunuz. Python'daki her ┼čeyin bir nesneye g├Ânderme yapan bir isim oldu─čunu ve normal i┼člemlerde hi├žbir ┼čeyin kopyalanmayaca─č─▒n─▒ unutmay─▒n.

Bir tan─▒mlay─▒c─▒n─▒n ├Ânceden tan─▒mlanm─▒┼č bir global i├žin ne zaman a├ž─▒klanaca─č─▒n─▒ a├ž─▒k├ža belirtmeniz gerekmediyse, bir tan─▒mlay─▒c─▒n─▒n bunun yerine yeni bir yerel de─či┼čken oldu─čunu (├Ârne─čin, 'var' komutu gibi bir ┼čeyle) a├ž─▒k├ža belirtmeniz gerekir. JavaScript'te g├Âr├╝ld├╝). Herhangi bir ciddi ve ├Ânemsiz sistemde yerel de─či┼čkenler global de─či┼čkenlerden daha yayg─▒n oldu─čundan, Python sistemi ├žo─ču durumda daha anlaml─▒ olur.

Sen olabilir o var ya o olmasayd─▒ yerel bir de─či┼čken olu┼čturmak e─čer k├╝resel bir de─či┼čkeni kullanarak, tahmin giri┼čiminde bulunan dili var. Ancak, bu ├žok hataya a├ž─▒k olurdu. ├ľrne─čin, ba┼čka bir mod├╝l├╝n i├že aktar─▒lmas─▒, yanl─▒┼čl─▒kla program─▒n davran─▒┼č─▒n─▒ de─či┼čtirerek, bu ada g├Âre global bir de─či┼čken tan─▒tabilir.


18







Bunu dene:

 def x1():
    global x
    x = 6

def x2():
    global x
    x = x+1
    print x

x = 5
x1()
x2()  # output --> 7
 

15







Ayn─▒ ada sahip yerel bir de─či┼čkeniniz varsa, globals() i┼člevi kullanmak isteyebilirsiniz .

 globals()['your_global_var'] = 42
 

12







Ard─▒ndan ve bir eklenti olarak, t├╝m├╝ yerel olarak bildirilen t├╝m global de─či┼čkenleri i├žerecek bir dosya kullan─▒n ve sonra import as :

─░nitval.py dosyas─▒ :

 Stocksin = 300
Prices = []
 

Dosya getstocks.py :

 import initval as iv

def getmystocks(): 
    iv.Stocksin = getstockcount()


def getmycharts():
    for ic in range(iv.Stocksin):
 

12


2015-10-24





K├╝resel bir dizinin a├ž─▒k elemanlar─▒na yazmak, g├Âr├╝n├╝┼čte k├╝resel bildirime ihtiya├ž duymaz, buna ra─čmen "toptan sat─▒┼č" yazarken bu gereksinim vard─▒r:

 import numpy as np

hostValue = 3.14159
hostArray = np.array([2., 3.])
hostMatrix = np.array([[1.0, 0.0],[ 0.0, 1.0]])

def func1():
    global hostValue    # mandatory, else local.
    hostValue = 2.0

def func2():
    global hostValue    # mandatory, else UnboundLocalError.
    hostValue += 1.0

def func3():
    global hostArray    # mandatory, else local.
    hostArray = np.array([14., 15.])

def func4():            # no need for globals
    hostArray[0] = 123.4

def func5():            # no need for globals
    hostArray[1] += 1.0

def func6():            # no need for globals
    hostMatrix[1][1] = 12.

def func7():            # no need for globals
    hostMatrix[0][0] += 0.33

func1()
print "After func1(), hostValue = ", hostValue
func2()
print "After func2(), hostValue = ", hostValue
func3()
print "After func3(), hostArray = ", hostArray
func4()
print "After func4(), hostArray = ", hostArray
func5()
print "After func5(), hostArray = ", hostArray
func6()
print "After func6(), hostMatrix = \n", hostMatrix
func7()
print "After func7(), hostMatrix = \n", hostMatrix
 

11







Bunu, di─čer cevaplar─▒n hi├žbirinde g├Ârmedi─čim i├žin ekliyorum ve benzer bir ┼čeyle m├╝cadele eden biri i├žin faydal─▒ olabilir. globals() ─░┼člevi, bir de─či┼čken k├╝resel bir simge s├Âzl├╝─č├╝ d├Âner nerede kodunun geri kalan─▒ i├žin kullan─▒labilir yapabilirsiniz "sihirli" marka verileri. ├ľrne─čin:

 from pickle import load
def loaditem(name):
    with open(r"C:\pickle\file\location"+"\{}.dat".format(name), "rb") as openfile:
        globals()[name] = load(openfile)
    return True
 

ve

 from pickle import dump
def dumpfile(name):
    with open(name+".dat", "wb") as outfile:
        dump(globals()[name], outfile)
    return True
 

Sadece de─či┼čkenleri global isim-alan─▒ d─▒┼č─▒na ve d─▒┼č─▒na atman─▒za / y├╝klemenize izin verecektir. S├╝per uygun, yaygara yok, yaygara yok. Eminim sadece Python 3't├╝r.


6







De─či┼čikli─čin g├Âr├╝nmesini istedi─činiz s─▒n─▒f ad alan─▒na ba┼čvurun.

Bu ├Ârnekte, runner config dosyadan max kullan─▒yor . Ko┼čucu kullan─▒rken testimin max de─čerini de─či┼čtirmesini istiyorum .

Ana / config.py

 max = 15000
 

Ana / runner.py

 from main import config
def check_threads():
    return max < thread_count 
 

Testler / runner_test.py

 from main import runner                # <----- 1. add file
from main.runner import check_threads
class RunnerTest(unittest):
   def test_threads(self):
       runner.max = 0                  # <----- 2. set global 
       check_threads()
 

5



─░lgili yay─▒nlar


Bir JavaScript fonksiyonunda global de─či┼čkeni tan─▒mlay─▒n

Dosyalar aras─▒nda global de─či┼čkenler kullanmak?

Global De─či┼čkenleri C# ile nas─▒l kullanabilirim?

JQuery'de global bir de─čer (mutlaka bir global de─či┼čken olmak zorunda de─čil) nas─▒l saklan─▒r?

App.js'deki Global De─či┼čken, rotalarda eri┼čilebilir durumda m─▒?

Rust'ta global de─či┼čkenler kullanmak m├╝mk├╝n m├╝?

PHP eri┼čim global de─či┼čkeni fonksiyonunda

Ruby'de global de─či┼čkenleri veya sabit de─čerleri nas─▒l kullan─▒yorsunuz?

Global de─či┼čken kullanmadan de─či┼čkenlere di─čer i┼člevlerden eri┼čme

Node.js dosyas─▒nda global de─či┼čken nas─▒l kullan─▒l─▒r?

Etiketle ilgili di─čer sorular [python]


O (log n) tam olarak ne anlama geliyor?

JQuery'de bir div eleman─▒ olu┼čturma [duplicate]

Node.js da─č─▒t─▒m ayarlar─▒ / yap─▒land─▒rma dosyalar─▒ nas─▒l depolan─▒r?

Git'teki bir daldaki etiketin fark─▒ nedir? Hangisini kullanmal─▒y─▒m?

HTTP'de Content-Disposition ba┼čl─▒─č─▒n─▒n dosya ad─▒ parametresi nas─▒l kodlan─▒r?

Swift'de bir dize ba┼čka bir dize i├žerip i├žermedi─čini nas─▒l kontrol edebilirim?

JQuery kullanarak bir se├žimin t├╝m se├ženekleri nas─▒l elde edilir?

T├╝m sakl─▒ yordamlar─▒ listelemek i├žin sorgula

Tarihe g├Âm├╝lm├╝┼č bir Git taahh├╝d├╝n├╝ nas─▒l b├Âlebilirim?

Rails 3'te mod├╝l / s─▒n─▒f─▒ lib klas├Âr├╝nden y├╝klemek i├žin en iyi yol?