OK, voici quelques points faciles. Pybinding est venu avec ce script:
bool IsNotNullOrEmpty(string value) { return (value != null) && (value.Length > 0 ); }
6 Réponses :
Pour vérifier si une chaîne est vide, vous utiliseriez len code>
. Essayez ceci:
Voilà, j'ai rollecback à ma réponse originale. J'ai supprimé mon message puis l'a remplacé avec ce que je croyais être une solution "pythonique", qui implique le pas non code>.
-1 Ceci n'est pas nécessaire en python car aucun et '' est faux en python: docs.python.org/library/stdtypes.html#truth-value-testing
@Lukas, affichez l'historique de cette réponse. Jonathon n'a pas aimé cette solution et cela ne fonctionne pas toujours pour les cours d'ironthon.
@Brian. Eh bien, ce n'est pas pythonique mais il fait bon piratage de faire du travail pybindig si mon dernier commentaire de la réponse de @ Ignacio est vrai.
Je pense, équivaut à p> pour les chaînes. Donc, je pense que la fonction n'est pas nécessaire dans Python. P> P>
def IsNotNullString(s): return bool(s) Rules of Python boolean conversion.
@Jonathanallen Je viens de courir cela dans l'interprète Python et cela a fonctionné pour moi. Dans quelle version de Python avez-vous eu un vrai? J'utilise 2.7.3
Vous ne devriez pas le faire dans une fonction. Au lieu de cela, vous devriez simplement utiliser:
if someStringOrNone:
C'est la version pythonique préférée et elle fonctionne parfaitement pour les cordes de Python. La seule raison pour laquelle il pourrait ne pas fonctionner n'est peut-être pas si vous passez du type .NET qui n'est pas compatible avec les chaînes Python à la fonction.
@Jonathan Je ne pense pas que vous passiez une chaîne vide à l'épreuve. Comme Ignacio vous a montré, cela fonctionne pour les chaînes vides. Pouvez-vous montrer le code des États-Unis où la chaîne vide évalue comme vrai? Je pense que ce serait un bug alors.
La chaîne vide était stockée dans une commande WPF et acheminée vers une fonction IronPython via pybinding. Je n'ai aucune idée de quelle "chaîne python" est ou si elle est compatible avec un système.string.
Je ne sais pas pybinding, mais cela me semble que comme pybinding gère les valeurs comme des objets plus riches. Alors, sa chaîne vide n'est pas «mais une classe de« pybindingvalue »qui n'est définitivement pas fausse.
Imprimez le REC () code> de la valeur afin que nous puissions jeter un coup d'oeil.
Si c'est ironpython, alors pourquoi ne pas utiliser la mise en œuvre par défaut de Isnullorempty de System.string?
if not value or len(value)==0: return True else: return False Try this one. I recommend you to read this book:https://play.google.com/store/apps/details?id=com.gavin.gbook
Eh bien, .NET comprend string.isnullorempty. Cela fonctionnerait-il?