Python - help()命令 - 相同的字符串不同的结果

时间:2017-07-15 00:12:42

标签: python

我正在使用带有相同字符串的python help命令,但它会给出不同的结果。

代码:

from BeautifulSoup import BeautifulSoup

link = BeautifulSoup("bilateralFilter")
title = link.getText()

string = "cv2." + title + ""
string2 = "cv2.bilateralFilter"

if string == string2:
    print "----- Output 1 -------------"
    print(type(string))
    help(string)
    print "----- Output 2 -------------"
    print(type(string2))
    help(string2)

控制台输出:

----- Output 1 -------------
<type 'unicode'>
Help on unicode object:

class unicode(basestring)
 |  unicode(object='') -> unicode object
 |  unicode(string[, encoding[, errors]]) -> unicode object
 ...
----- Output 2 -------------
<type 'str'>
Help on built-in function bilateralFilter in cv2:

cv2.bilateralFilter = bilateralFilter(...)
    bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]]) -> dst

因此,如果它是相同的字符串,那么帮助不应该返回相同的颜色?

1 个答案:

答案 0 :(得分:3)

  1. titleunicode个对象。
  2. 因此"cv2." + title + ""也是一个unicode对象。
  3. help显然只接受非unicode str来查找名称,例如string2
  4. 所以stringstring2实际上是不同的类型,但strunicode仍然可以比较相等。
  5. 您可以使用title = u'bilateralFilter'string = u"cv2.bilateralFilter"
  6. 重现该行为