English 中文(简体)
p
原标题:Using methods of a class from another in python

Im在谷歌应用发动机上通过Dive Into-030进行工作,在试图从另一类人中找一个等级的方法时,跨越这一错误:

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);

I thought I could call DataAccess.create() with 1 parameter for its argument, especially according to how Dive into Python notes about class method calls:

When defining your class methods, you must explicitly list self as the first argument for each method, including __init__. When you call a method of an ancestor class from within your class, you must include the self argument. But when you call your class method from outside, you do not specify anything for the self argument; you skip it entirely, and Python automatically adds the instance reference for you.

最佳回答

In self.data_store.create(data_dictionary), the self.data_store refers to the object created by self.data_store = StandardDataStore() in the __init__ method.

参看<代码>create 方法StandardDataStore 标注t预计会增加一个论点。

问题回答

应为<代码>本身。





相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...

热门标签