[英]Can someone help me on why this python script won't run?
import numbers
class base62(numbers.Number):
digits='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def __init__(self,value):
if isinstance(value,int):
self.value=value
if value==0:
self.string='0'
else:
self.string='' if value>0 else '-'
while value!=0:
value,d=divmod(value,62)
self.string=self.digits[d]+self.string
elif isinstance(value,(str,bytes)):
assert(value.isalnum())
self.string=str(value)
self.value=0
for d in value:
self.value=self.value*62+self.digits.index(d)
def __int__(self):
return self.value
def __str__(self):
return self.string
def __repr__(self):
return self.string
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import base62
>>> b = base62(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
>>>
base62
似乎是您的模塊以及該模塊中函數的名稱。 嘗試:
>>> import base62
>>> b = base62.base62(3)
閱讀錯誤消息:
TypeError: 'module' object is not callable
TypeError
表示存在Error
因為某些錯誤的Type
。 有問題的是base62
。 這是因為base62
是module
的名稱,這不是callable
的名稱。 聽起來,“可呼叫”是指“可以被呼叫”。
你要撥打的事情是在模塊中定義的功能。 該函數也命名為base62
,但是該函數不能使用該名稱,因為該名稱現在代表模塊。
幸運的是,模塊中的功能表示為模塊的屬性。 因此,您可以作為base62.base62
來訪問它: base62
(第一個)的base62
屬性(該語法中的第二個)。 在這種情況下, base62
在base62
模塊中base62
。
或者,您可以通過告訴Python從模塊中導入什么內容,而僅從模塊中導入該函數。 那是自然編寫的,但不是您可能期望的順序:您from base62 import base62
編寫它。 (同樣,模塊名稱-您要從中導入的名稱-首先出現,函數名稱-從中導入的內容-第二。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.