Dokonuję niezgody bot i wydajność jest moim pierwszym priorytetem. Chciałem wiedzieć, co jeśli wykonuję połączenie bazy danych, ponieważ funkcja biegnie zamiast globalnie? Który byłby lepszy? Lubię to;

import sqlite3

conn= sqlite.connect("somedb.db")

Lub;

import sqlite3

def main():
    sqlite.connect("somedb.db")
    ...

# some other functions defined below.
0
user11936470 9 luty 2021, 09:12

2 odpowiedzi

Najlepsza odpowiedź

Jeśli wydajność sprawy do tego punktu, należy poświęcić innym językiem jak C lub przynajmniej C ++ lub Java. Bycie doskonałym językiem koncentrującym się na czytelności, Python został początkowo zaprojektowany jako język skryptowy, a wydajność nie jest jego najlepszym punktem.

Powiedziano, że nie powinno być żadnej zauważalnej zmienności wydajności między obydwoma sposobami: Drogie nośnik nazywa się raz, pełny przystanek. Kluczową różnicą będzie zakres. Korzystając z pierwszego sposobu, masz zmienną poziomu modułu, bezpośrednio dostępne z dowolnego miejsca w tym module. Korzystając z drugiego sposobu, masz funkcję zmienną lokalną, która będzie musiała być wyraźnie przekazywana do wszystkich funkcji wywoływanych z main.

To jest decyzja Design , a nie występująca wydajność.

0
Serge Ballesta 9 luty 2021, 07:03

Myślę, że lepiej zaprojektować klasę dla bazy danych i operacji Crud

import sqlite3
class database:
    def __init__(self,db_name):
        self.connection=sqlite.connect(db_name)

    def create(self):
        pass

    def read(self):
        pass

        ...


db=database("somedb.db")
db.create() 
0
Hassan Mohammadi 9 luty 2021, 06:24