En utilisant tinydb j'ai un objet pour les opérations de base de données comme celle-ci:Appel de fonction dans if-Statement/evoke call avec print() - bonne pratique?
#database.py
class DataBase(object):
"""CRUD access to database."""
def __init__(self):
"""Initialize database."""
self.db = TinyDB('/db.json')
def new(self, **kwargs):
"""Add a new entry to the database."""
if self.db.insert(kwargs): # 1
return 'New item added to the database.'
else:
return 'Item NOT added to the database.'
La méthode « insert » de tinydb renvoie l'identifiant de l'entrée après insertion, voir # 1. Donc j'utiliser cet effet pour renvoyer un message de succès/échec, qui peut être affiché lorsque la fonction est appelée avec impression():
#main.py
#...
@entry.command('new')
@click.argument('first_arg', type=str)
@click.argument('second_arg', type=str)
def entry_new(**kwargs):
"""Create a new entry."""
if kwargs is not None:
click.echo(a_db.new(**kwargs)) # 2
#...
Question n ° 1:
if self.db.insert(kwargs):
Est-il ' bonne pratique »pour exécuter la fonction d'insertion à l'intérieur de l'instruction de condition de l'if-block? Si non, quelles sont les alternatives pour obtenir une instruction if/else basée sur la valeur de retour?
Question n ° 2:
click.echo(a_db.new(**kwargs))
Le processus d'insérer un fichier dans la base de données est enveloppé dans une version imprimée déclaration pour pouvoir accéder à la valeur de retour de la fonction d'insertion. Est-ce une bonne pratique ou existe-t-il de meilleurs moyens d'appeler la fonction d'insertion, d'accéder à la valeur de retour et de l'imprimer?
Merci d'avance pour vos précisions!