2010-01-25 18 views
7

ठीक है, यहां कुछ आसान अंक हैं। PyBinding इस स्क्रिप्ट के साथ आया था:स्ट्रिंग शून्य या खाली है

def IsNotNull(value): 
    return value is not None 

यह करीब है, लेकिन क्या मैं चाहता हूँ यह है।

bool IsNotNullOrEmpty(string value) { 
    return (value != null) && (value.Length > 0); 
} 
+0

ठीक है, .NET में स्ट्रिंग शामिल है ISNullOrEmpty। क्या इससे काम हो जायेगा? – ojrac

उत्तर

16

यह जांचने के लिए कि कोई स्ट्रिंग खाली है या नहीं, आप len का उपयोग करेंगे। इस प्रयास करें:

def IsNotNull(value): 
    return value is not None and len(value) > 0 
+0

फिर गलत। क्या आपने इस कोड को आजमाने की भी परेशानी की? –

+0

वहां आप जाते हैं, मैंने अपने मूल उत्तर में रोलबैक किया है। मैंने अपनी पोस्ट हटा दी और फिर इसे "पायथनिक" समाधान माना जाता है, जिसमें 'नहीं' शामिल है। –

+1

-1 पायथन में यह आवश्यक नहीं है और '' पाइथन में गलत हैं: http://docs.python.org/library/stdtypes.html#truth-value-testing –

0

मुझे लगता है कि,

if IsNotNull(value) { 

if not value: 

स्ट्रिंग्स के लिए के बराबर है। तो मुझे लगता है कि पाइथन में फ़ंक्शन आवश्यक नहीं है।

1
def IsNotNullString(s): 
    return bool(s) 

Rules of Python boolean conversion.

+0

काम नहीं किया। खाली तार अभी भी सच के रूप में वापस आ गए। –

+0

@ जोनाथनएलेन मैंने अभी इसे अजगर दुभाषिया में भाग लिया और यह मेरे लिए काम किया। पाइथन के किस संस्करण में आपको सच मिला? मैं 2.7.3 – Saurav

5

आप एक समारोह में यह कर नहीं होना चाहिए। इसके बजाय आप बस का उपयोग करना चाहिए:

if someStringOrNone: 
+0

का उपयोग कर रहा हूं काम नहीं किया। खाली तार अभी भी सच के रूप में वापस आ गए। –

+5

यह पसंदीदा पायथनिक संस्करण है और यह पाइथन के तारों के लिए पूरी तरह से काम करता है। आपके लिए यह काम करने का एकमात्र कारण यह नहीं है कि यदि आप कुछ .NET प्रकार को पार कर रहे हैं जो फ़ंक्शन पर पायथन स्ट्रिंग के साथ संगत नहीं है। –

+0

@ जोनाथन मुझे नहीं लगता कि आप परीक्षण में खाली स्ट्रिंग पास कर रहे हैं। जैसा कि इग्नासिओ ने आपको दिखाया है, यह खाली तारों के लिए काम करता है। क्या आप हमें कोड दिखा सकते हैं जहां खाली स्ट्रिंग सत्य के रूप में evalutes? मुझे लगता है कि तब एक बग होगा। –

3

यदि यह IronPython है, तो क्यों System.String से IsNullOrEmpty के डिफ़ॉल्ट कार्यान्वयन का उपयोग नहीं?

import clr 
clr.AddReference('System') 
import System 
System.String.IsNullOrEmpty('') # returns True 
System.String.IsNullOrEmpty(None) # returns True 
System.String.IsNullOrEmpty('something') # returns False 
संबंधित मुद्दे