对python代码中对象的质疑
我从指南中复制了一段python代码:对python代码中对象的质疑,python,Python,我从指南中复制了一段python代码: class Carta: ListaSemi=["Fiori","Quadri","Cuori","Picche"] ListaRanghi=["impossibile","Asso","2","3","4","5","6",\ "7","8","9","10","Jack","Regina","Re"] def __init__(self, Seme=0, Rango=0): s
class Carta:
ListaSemi=["Fiori","Quadri","Cuori","Picche"]
ListaRanghi=["impossibile","Asso","2","3","4","5","6",\
"7","8","9","10","Jack","Regina","Re"]
def __init__(self, Seme=0, Rango=0):
self.Seme=Seme
self.Rango=Rango
def __str__(self):
return (self.ListaRanghi[self.Rango] + " di " + self.ListaSemi[self.Seme])
def __cmp__(self, Altro):
#controlla il seme
if self.Seme > Altro.Seme: return 1
if self.Seme < Altro.Seme: return -1
#se i semi sono uguali controlla il rango
if self.Rango > Altro.Rango: return 1
if self.Rango < Altro.Rango: return -1
return 0
class-Carta:
ListaSemi=[“Fiori”、“Quadri”、“Cuori”、“Picche”]
ListaRanghi=[“不可能”、“可能”、“2”、“3”、“4”、“5”、“6”\
“7”、“8”、“9”、“10”、“Jack”、“Regina”、“Re”]
定义初始值(self,Seme=0,Rango=0):
self.Seme=Seme
self.Rango=Rango
定义(自我):
return(self.ListaRanghi[self.Rango]+“di”+self.ListaSemi[self.Seme])
def u u cmp __;(自身、备用):
#表面控制
如果self.Seme>Altro.Seme:返回1
如果self.SemeAltro.Rango:返回1
如果self.Rango
当我从shell打电话时:
>>> Carta1=Carta(1,11)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
Carta1=Carta(1,11)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“模块”对象不可调用
我使用的是python 2.7版。
怎么了??
谢谢我假设上面的代码片段保存为
Carta.py
,并且您在交互式shell中运行:
>导入Carta
>>>Carta1=Carta(1,11)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“模块”对象不可调用
通过这种方式,您可以尝试调用/实例化模块,而不是其中的类。基本上有两种方法可以解决此问题,即更改导入或构造函数调用:
如果重命名模块文件或类以便更好地区分它们,则会变得清晰。我假设上面的代码段保存为
Carta.py
,并且您在交互式shell中运行:
>导入Carta
>>>Carta1=Carta(1,11)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“模块”对象不可调用
通过这种方式,您可以尝试调用/实例化模块,而不是其中的类。基本上有两种方法可以解决此问题,即更改导入或构造函数调用:
如果重命名模块文件或类以便更好地区分它们,则会变得清晰。您没有显示要导入的内容;看起来您导入了模块,而不是其中的类。我复制了您的代码,工作正常。将代码保存在文件中,然后尝试运行您的文件而不是python shell,并将其作为模块导入;看起来您导入了模块,而不是其中的类。我复制了您的代码,工作正常。将代码保存在文件中,然后尝试运行您的文件而不是python shell,并将其作为模块导入。另外,请参阅来自PEP008的。因此,在本例中,它将建议模块名为
carta.py
,并且类与原始代码中的类相同-carta
。此外,请参阅来自PEP008的。因此,在本例中,它将建议模块名为carta.py
,并且类与原始代码中的类相同-carta
。
>>> from Carta import Carta
>>> Carta1=Carta(1,11)
>>> import Carta
>>> Carta1=Carta.Carta(1,11)