Newsgroup: it.comp.os.linux.development
Titolo: python question

Salve, avrei alcune domande da porvi sul python:
1) Ho notato che non è possibile chiamare ricorsivamente per più di 999 volte una
funzione, perchè? E' possibile aumentare questo limite?
2)Gli argomenti sono passati per riferimento. E' possibile copiare il valore di 
un argomento in una variabile locale senza che modificando questa venga 
modificato anche l'argomento?
2)Ho sentito spesso parlare di alcuni punti critici della programmazione, e che
questi sarebbe meglio scriverli in c. Ma cosa sono? Lunghe sequenze di calcolo?
grazie

 writes:
ock> Salve, avrei alcune domande da porvi sul python: 1) Ho notato che
ock> non č possibile chiamare ricorsivamente per piů di 999 volte una
ock> funzione, perchč? E' possibile aumentare questo limite?
Per impedire che si facciano ricorsioni infinite. Si puň cambiare con:
import sys
sys.setrecursionlimit(2000)
ock> 2)Gli argomenti sono passati per riferimento. E' possibile
ock> copiare il valore di un argomento in una variabile locale senza
ock> che modificando questa venga modificato anche l'argomento?
import copy
b = copy.copy(a)
ock> 2)Ho sentito spesso parlare di alcuni punti critici della
ock> programmazione, e che questi sarebbe meglio scriverli in c. Ma
ock> cosa sono? Lunghe sequenze di calcolo?
Non si capisce a cosa ti riferisci.
Saluti
Marco

 Non si capisce a cosa ti riferisci.
credo che si riferisca alle sezioni critiche.
per ock: le sezioni critiche sono porzioni del sorgente che, per vari
motivi, non possono essere eseguite contemporaneamente da più
threads/processi.
In genere le sezioni critiche sono quelle porzioni di codice che condividono
dati con altri threads/processi.
Non vedo perchè scriverli in linguaggio C, onestamente.
--
- Carlo -
c.b...@libero.it

 credo che si riferisca alle sezioni critiche.
io credo invece si riferisca ai punti che piu' impegnano il processore, 
ed essendo python interpretato o al meglio in byte code, scrivere questi 
in c rende piu' veloce il programma
vedi ad esmpio linux gazette 49, l'articolo su swig
-- 
#include <stdio.h>/* (C) BW2K+2 This code is released under GPL 2+ */
int main(void){char c[]={98,108,97,107,119,111,108,102,64,116,105,
115,99,97,108,105,46,105,116,32,119,101,98,46,116,105,115,99,97,108,
105,46,105,116,47,98,108,97,107,119,111,108,102,0};printf("%s\n",c);}

 writes:
[...]
Carlo> In genere le sezioni critiche sono quelle porzioni di codice
Carlo> che condividono dati con altri threads/processi.
Carlo> Non vedo perchè scriverli in linguaggio C, onestamente.
Concordo.
Se si vuole usare python per il progetto si può usarlo per *tutto* il
progetto. Probabilmente ci sono solo pochi casi dove si deve scrivere
codice C:
- se ci si deve collegarsi a librerie esterne, ma dubito che non siano
  già stati scritti dei moduli python appositi per queste ipotetiche
  librerie (e poi c'è swig);
- nel caso si abbiano notevoli problemi di velocità condizionati dal
  modo in cui si è scritto il codice, alcune -rare- volte vale la pena
  di scrivere C.
Questo più o meno vale per tutti i linguaggi di scripting.
BTW, il python si adatta bene a fare anche prototipizzazione.
Saluti
Marco

 
si, mi riferivo a quello, grazie a te per la dritta e agli altri per i
suggerimenti
ciao