🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
4 messages
4 total messages Started by Paweł Wed, 22 Dec 2010 10:08
[ Arcgis] Jak zdefiniować zmienną globalną ?
#27850
Author: Paweł
Date: Wed, 22 Dec 2010 10:08
36 lines
2272 bytes
Witam

Chciałbym się zapytać czy ktoś wie jak można uzyskać (odczytać) wartość
zmiennych użytych jako parametr dla narzędzia Arcgis ? Poniższy skrypt
wyszukuje w tabelce atrybutów,  duplikaty. Zmienne n0 i n1 zwracają po
zakończeniu skryptu wartość 0 zamiast np. 15 w związku z tym ostatnia
instrukcja if nie działa prawidłowo ? Co robię źle lub czego brakuje w tym
kodzie ?

n0 = 0
n1 = 0 #liczba znalezionych duplikatów

codeblock = "uniqueList = []\n\
def isDuplicate(inValue):\n\
  if inValue in uniqueList:\n\
      return 1\n\
      n1=n1+1\n\
  else:\n\
    uniqueList.append(inValue)\n\
    return 0\n\
    n0=n0+1"

expression1= "isDuplicate(!ID_DZ!)"

gp.CalculateField_management(Output_Dataset, name_dfield, expression1,
"PYTHON", codeblock)

if n1 > 0:
    gp.AddMessage ("Znaleziono " +str(n1)+ " duplikat(-ów).")
    gp.AddMessage ("Dodano informację o duplikatach(1) lub ich braku(0) w
nowym polu: "+str(name_dfield)+".")
    print gp.getmessages(3)
else:
    gp.AddMessage ("Brak obiektów o zduplikowanych atrybutach we wskazanej
warstwie."+" n1="+str(n1)+", n0="+str(n0))
    print gp.getmessages(4)
Re: [ Arcgis] Jak zdefiniować zmienną globalną ?
#27851
Author: Paweł
Date: Thu, 23 Dec 2010 08:12
16 lines
1823 bytes
Użytkownik "Paweł" <gamacdur@op.pl> napisał w wiadomości
news:4d11cf35$0$2495$65785112@news.neostrada.pl...
> Witam
>
> Chciałbym się zapytać czy ktoś wie jak można uzyskać (odczytać) wartość
> zmiennych użytych jako parametr dla narzędzia Arcgis ? Poniższy skrypt
> wyszukuje w tabelce atrybutów,  duplikaty. Zmienne n0 i n1 zwracają po
> zakończeniu skryptu wartość 0 zamiast np. 15 w związku z tym ostatnia
> instrukcja if nie działa prawidłowo ? Co robię źle lub czego brakuje w tym
> kodzie ?
>
[...]
>
Zapytam inaczej jak przypisać wartość zmiennej globalnej ze zmiennej
lokalnej ?
Re: [ Arcgis] Jak zdefiniowa? zmienn? globaln? ?
#27852
Author: Adam Przybyla
Date: Thu, 23 Dec 2010 11:51
35 lines
1873 bytes
"Pawe?" <gamacdur@op.pl> wrote:
> 
> U?ytkownik "Pawe?" <gamacdur@op.pl> napisa? w wiadomo?ci
> news:4d11cf35$0$2495$65785112@news.neostrada.pl...
>> Witam
>>
>> Chcia?bym si? zapyta? czy kto? wie jak mo?na uzyska? (odczyta?) warto??
>> zmiennych u?ytych jako parametr dla narz?dzia Arcgis ? Poni?szy skrypt
>> wyszukuje w tabelce atrybut?w,  duplikaty. Zmienne n0 i n1 zwracaj? po
>> zako?czeniu skryptu warto?? 0 zamiast np. 15 w zwi?zku z tym ostatnia
>> instrukcja if nie dzia?a prawid?owo ? Co robi? ?le lub czego brakuje w tym
>> kodzie ?
>>
> [...]
>>
> Zapytam inaczej jak przypisa? warto?? zmiennej globalnej ze zmiennej
> lokalnej ?
	... tak niegrzecznie:
smtp:/home/adam>python xx
0
1
smtp:/home/adam>cat xx 
def z(x):
        x[0]=1

y=[0]
print y[0]
z(y)
print y[0]
smtp:/home/adam>

A grzecznie to uzyj slowa kluczowego "global":
http://www.wellho.net/resources/ex.php4?item=y105/locvar.py
Z powazaniem
								Adam Przybyla
Re: [ Arcgis] Jak zdefiniowa? zmienn? globaln? ?
#27853
Author: Paweł
Date: Mon, 27 Dec 2010 09:14
39 lines
2332 bytes
Użytkownik "Adam Przybyla" <adam@rybnik.pl> napisał w wiadomości
news:ievd3t$64k$1@polsl.pl...
> "Pawe?" <gamacdur@op.pl> wrote:
> >
> > U?ytkownik "Pawe?" <gamacdur@op.pl> napisa? w wiadomo?ci
> > news:4d11cf35$0$2495$65785112@news.neostrada.pl...
> >> Witam
> >>
> >> Chcia?bym si? zapyta? czy kto? wie jak mo?na uzyska? (odczyta?) warto??
> >> zmiennych u?ytych jako parametr dla narz?dzia Arcgis ? Poni?szy skrypt
> >> wyszukuje w tabelce atrybut?w,  duplikaty. Zmienne n0 i n1 zwracaj? po
> >> zako?czeniu skryptu warto?? 0 zamiast np. 15 w zwi?zku z tym ostatnia
> >> instrukcja if nie dzia?a prawid?owo ? Co robi? ?le lub czego brakuje w
tym
> >> kodzie ?
> >>
> > [...]
> >>
> > Zapytam inaczej jak przypisa? warto?? zmiennej globalnej ze zmiennej
> > lokalnej ?
> ... tak niegrzecznie:
[...]
> smtp:/home/adam>cat xx
> def z(x):
>         x[0]=1
>
> y=[0]
> print y[0]
> z(y)
> print y[0]
> smtp:/home/adam>
>
> A grzecznie to uzyj slowa kluczowego "global":
> http://www.wellho.net/resources/ex.php4?item=y105/locvar.py
> Z powazaniem
> Adam Przybyla

W pythonie oczywiście wszystko to działa ale w skryptach już niestety nie :(
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads