簡體   English   中英

有人可以幫我解決為什么無法運行此python腳本嗎?

[英]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 這是因為base62module的名稱,這不是callable的名稱。 聽起來,“可呼叫”是指“可以被呼叫”。

你要撥打的事情是在模塊定義的功能。 該函數也命名為base62 ,但是該函數不能使用該名稱,因為該名稱現在代表模塊。

幸運的是,模塊中的功能表示為模塊的屬性。 因此,您可以作為base62.base62來訪問它: base62 (第一個)的base62屬性(該語法中的第二個)。 在這種情況下, base62base62模塊中base62

或者,您可以通過告訴Python從模塊中導入什么內容,而僅從模塊中導入該函數。 那是自然編寫的,但不是您可能期望的順序:您from base62 import base62編寫它。 (同樣,模塊名稱-您要從中導入的名稱-首先出現,函數名稱-從中導入的內容-第二。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM