我刚刚开始学习Python,但我已经遇到了一些错误.我创建了一个名为pythontest.py以下内容的文件:
class Fridge:
"""This class implements a fridge where ingredients can be added and removed individually
or in groups"""
def __init__(self, items={}):
"""Optionally pass in an initial dictionary of items"""
if type(items) != type({}):
raise TypeError("Fridge requires a dictionary but was given %s" % type(items))
self.items = items
return
Run Code Online (Sandbox Code Playgroud)
我想在交互式终端中创建一个新的类实例,所以我在终端中运行以下命令:python3
>> import pythontest
>> f = Fridge()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Fridge' is not defined
Run Code Online (Sandbox Code Playgroud)
交互式控制台找不到我制作的课程.但导入成功.没有错误.
似乎没有人提到你能做到的
from pythontest import Fridge
Run Code Online (Sandbox Code Playgroud)
这样,您现在可以Fridge()直接在命名空间中调用,而无需使用通配符进行导入
你需要做:
>>> import pythontest
>>> f = pythontest.Fridge()
Run Code Online (Sandbox Code Playgroud)
奖励:你的代码最好这样写:
def __init__(self, items=None):
"""Optionally pass in an initial dictionary of items"""
if items is None:
items = {}
if not isinstance(items, dict):
raise TypeError("Fridge requires a dictionary but was given %s" % type(items))
self.items = items
Run Code Online (Sandbox Code Playgroud)