在python中使用来自另一个类的方法
我正在Google App Engine上进行“深入Python”的工作,在尝试从一个类调用另一个类的方法时遇到了这个错误:在python中使用来自另一个类的方法,python,google-app-engine,instance-methods,Python,Google App Engine,Instance Methods,我正在Google App Engine上进行“深入Python”的工作,在尝试从一个类调用另一个类的方法时遇到了这个错误: ERROR __init__.py:463] create() takes exactly 1 argument (2 given) Traceback (most recent call last): File "main.py", line 35, in get dal.create("sample-data"); File "dataAccess/d
ERROR __init__.py:463] create() takes exactly 1 argument (2 given)
Traceback (most recent call last):
File "main.py", line 35, in get
dal.create("sample-data");
File "dataAccess/dal.py", line 27, in create
self.data_store.create(data_dictionary);
TypeError: create() takes exactly 1 argument (2 given)
这是我的主要课程:
# filename: main.py
from dataAccess.dal import DataAccess
class MySampleRequestHandler(webapp.RequestHandler):
"""Configured to be invoked for a specific GET request"""
def get(self):
dal = DataAccess();
dal.create("sample-data"); # problem area
MySampleRequestHandler.get()
尝试实例化和调用DataAccess
,该访问在以下位置定义:
# filename: dal.py
from dataAccess.datastore import StandardDataStore
class DataAccess:
"""Class responsible for wrapping the specific data store"""
def __init__(self):
self.data_store = None;
data_store_setting = config.SETTINGS['data_store_name'];
if data_store_setting == DataStoreTypes.SOME_CONFIG:
self.data_store = StandardDataStore();
logging.info("DataAccess init completed.");
def create(self, data_dictionary):
# Trying to access the data_store attribute declared in __init__
data_store.create(data_dictionary);
我想我可以调用DataAccess.create()
,其参数为1个参数,特别是根据Python中关于类方法调用的说明:
定义类方法时,必须明确地将self列为第一个
每个方法的参数,包括\uuuu init\uuu
。当您调用
在类中,必须包含自参数。
但是,当您从外部调用类方法时,并没有指定任何内容
对于自我论证;完全跳过它,Python会自动添加
为您提供实例参考
应该是
self.data\u store.create(数据字典)代码>应该是self.data\u store.create(数据字典)
在self.data\u store.create(data\u dictionary)
中,self.data\u store
指的是self.data\u store=StandardDataStore()
方法中创建的对象
它看起来像是标准数据存储
对象的创建
方法不需要额外的参数。在self.data\u store.create(data\u dictionary)
中,self.data\u store
是指由self.data\u store=StandardDataStore()
方法中的创建的对象
它看起来像是StandardDataStore
对象的create
方法不需要额外的参数。我试过了,但得到了一个类似的错误:error init.py:463]create()正好接受一个参数(2个给定的)回溯(最后一次调用):文件“main.py”,第35行,在get dal.create(“示例数据”)中;文件“dal.py”,第27行,在createself.data\u store.create(data\u dictionary)中;TypeError:create()只接受1个参数(2个给定值)我尝试过,但得到了一个类似的错误:error init.py:463]create()只接受1个参数(2个给定值)回溯(最后一次调用):文件“main.py”,第35行,在get dal.create(“示例数据”)中;文件“dal.py”,第27行,在createself.data\u store.create(data\u dictionary)中;TypeError:create()只接受1个参数(给定2个)如何定义StandardDataStore.create()
方法?它需要的参数是什么?是的,错误在于对象的data\u store
方法create()
而不是DataAccess
方法。如何定义StandardDataStore.create()
方法?它期望的参数是什么?是的,错误在于数据存储
对象的create()
方法,而不是DataAccess
方法。