Используйте isinstance и либо basestring
для Python 2.x, либо str
или unicode
для Python 3. .Икс:
isinstance(your_string, basestring)
Это вопрос, который вы изначально задали, но, вероятно, не то, что вы имели в виду. Ваш пример кода предполагает, что вы действительно хотите знать, как проверить, является ли строка буквенной или буквенно-цифровой. Для этого вы хотите использовать isalpha
или isalnum
строковые методы.
ул.исальфа()
Возвращает true, если все символы в строке являются буквенными и есть хотя бы один символ, иначе false.
Для 8-битных строк этот метод зависит от локали.
Вы также можете подумать о рефакторинге своего кода, чтобы его было немного легче читать и поддерживать. Может быть, что-то вроде этого:
API_URL = 'http://someAPIurl/%s/%s/%s/1.xml?key=%s'
KIND_CHOICES = ('weapon', 'food')
def bp(jenni, input):
try:
cmd, kind, index = input.group(2).encode('utf-8').split()
# Assigning to 3 variables lets you skip the len() == 3 check
# and can make the use of each argument more obvious than text[1]
except:
jenni.reply("Please use correct syntax '.bp id weapons 7'. Available for weapons and food only")
if cmd.isalpha() and kind in KIND_CHOICES and index.isdigit():
url = API_URL % (cmd, kind, index, key) # is key a global?
# ...
person
istruble
schedule
27.09.2012
str
, то вы знаете, что этоisstr
, для этого вам не нужен метод. - person tripleee   schedule 28.09.2012