Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 22, 2021 10:53:20

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

heyfec Уберите классы, это не улучшение, это лишняя сущность. Не нужно использовать классы там где можно обойтись просто функциями или даже без онных. У вас класс как пятое колесо в телеге. Да еще с кучей глобальных переменных внутри.Это вообще дичь:

     
def __init__(self):    # инициализирует переменные и запускает функции на выполнение
        global den
        global cur
        global conn
        global session
        global Session
        global engine
        global dbPath
        global emp
        global metadata
        global k
        global data0
А вот это:
         self.create_emp=self.create_emp()
        self.print_emp=self.print_emp()
        self.create_table_emp_for_alchemy=self.create_table_emp_for_alchemy()
        self.print_table_emp_alchemy=self.print_table_emp_alchemy()
вобще за пределами добра и зла. Такое впечатление что вы не представляете вообще что делаете.

По поводу “оптимизации”
Ну вот смотрите у вас в нескольких местах используется конструкци
=sqlite3.connect('datafile2.db'), почему бы вам не вынести ‘datafile2.db’ в отдельную переменну в начале скрипта , типа:
DB_PATH = ‘datafile2.db’
а потом внутри:
=sqlite3.connect('DB_PATH')
это существенно улучшит как читаемость скрипта, так и дальнейшую работу с ним, потому что если, например, вам нужно будет поменять datafile2.db на datafile3.db вы это сделаете только в одном месте, вместо того чтобы искать и менять по всему скрипту. таже фигня с ‘example.db’, может еще с какими значениями, это так первое что на глаза попалось.
Вот у вас есть повторяющиеся два раза куски кода типа:
         engine = create_engine('sqlite:///%s' % dbPath)
        metadata = MetaData(engine)
        emp = Table('emp', metadata, Column('id', Integer, primary_key=True), Column('name', String), Column('salary', Integer), Column('dept', Integer),)
        Session = sessionmaker(bind=engine)
        session = Session()
        metadata.create_all(engine)
Очевидно что их можно вынести в отдельную функцию.

Вот у вас повсторяюстья много раз подряд простыня cur.execute('''blah blah blah'''), возможно стит все ‘'’blah blah blah''' вынести в отдельный список или многострочный литерал, и потом в цикле для каждой строки делать cur.execute(line) ну и тд…



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#2 Апрель 22, 2021 12:06:05

heyfec
От: dfkjnfм
Зарегистрирован: 2021-04-20
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

еще

Отредактировано heyfec (Май 2, 2021 11:28:51)

Офлайн

#3 Апрель 22, 2021 12:08:19

heyfec
От: dfkjnfм
Зарегистрирован: 2021-04-20
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

PEHDOM
heyfec Уберите классы, это не улучшение, это лишняя сущность. Не нужно использовать классы там где можно обойтись просто функциями или даже без онных. У вас класс как пятое колесо в телеге. Да еще с кучей глобальных переменных внутри.Это вообще дичь:
Спасибо обязательно воспользуюсь вашими советами

Офлайн

#4 Апрель 22, 2021 13:27:01

heyfec
От: dfkjnfм
Зарегистрирован: 2021-04-20
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

еще

Отредактировано heyfec (Май 2, 2021 11:29:05)

Офлайн

#5 Апрель 22, 2021 14:37:10

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

heyfec
self.create_table_stocks_and_insert_table_stocks_and_print_table_stocks_and_drop_table_stocks=self.create_table_stocks_and_insert_table_stocks_and_print_table_stocks_and_drop_table_stocks()
Ты делаешь какие-то шаги в бездну
Расскажи вкратце какую задачу решает твоя программа,с какой проблемой ты столкнулся,которая теперь решает эта программа

Отредактировано xam1816 (Апрель 22, 2021 14:42:13)

Офлайн

#6 Апрель 22, 2021 14:58:11

heyfec
От: dfkjnfм
Зарегистрирован: 2021-04-20
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

Вроде этого?

Отредактировано heyfec (Май 1, 2021 22:00:10)

Офлайн

#7 Апрель 22, 2021 15:57:21

heyfec
От: dfkjnfм
Зарегистрирован: 2021-04-20
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

Вот чего пока получилось

Отредактировано heyfec (Май 1, 2021 22:00:32)

Офлайн

#8 Апрель 22, 2021 16:03:10

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

heyfec
Вроде этого?
скорее вроде этого:
 SQL_QUERY0 = '''CREATE TABLE emp(name text,salary real, dept real, id integer, CONSTRAINT id_pk PRIMARY KEY (id))
INSERT INTO emp VALUES('tyrion', 100000, 2, 1)
INSERT INTO emp VALUES('jon', 100, 3, 2)
INSERT INTO emp VALUES('daenerys', 10000, 4, 3)
INSERT INTO emp VALUES('daenerys', 12000, 12, 4)
INSERT INTO emp VALUES('daenerys', 15000, 40, 5)
INSERT INTO emp VALUES('daenerys', 40000, 62, 6)
ALTER TABLE emp ADD COLUMN deptis integer
ALTER TABLE emp RENAME COLUMN deptis TO rt'''
....
for line in SQL_QUERY0.split('\n'):
   cur.executet(line)
или даже заменить это все на один executescript() если вам нужно сразу много подряд комманд выполнить.
https://docs.python.org/2/library/sqlite3.html#sqlite3.Cursor.executescript

в данном контекесте вот такой вынос функции вообще лишний,
 def execute_sql_query(SQL_QUERY):
    cur.execute(SQL_QUERY)
он ничего не дает по сравнению если бы вы просто писали cur.execute(SQL_QUERY)



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 22, 2021 16:05:28)

Офлайн

#9 Апрель 22, 2021 16:49:46

heyfec
От: dfkjnfм
Зарегистрирован: 2021-04-20
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

Ну пожалуй пока хватит улучшений потом продолжу всем спасибо за советы

Отредактировано heyfec (Май 1, 2021 22:01:02)

Офлайн

#10 Апрель 22, 2021 21:43:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9880
Репутация: +  853  -
Профиль   Отправить e-mail  

Как улучшить стиль программы?

heyfec
Ну пожалуй пока хватит улучшений потом продолжу
Да, подучись сначала, а потом делай. Провозился просто впустую и ничего не достиг. Программа простенькая, а сделать ты её не можешь, так как знаний нет.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version