class Car:
    def start(self):
        print('Staring the engine')

myCar = Car()
myCar.start()

Car.start()


Output:
Start the engine
Traceback (most recent call last):
File "C:\Users\Shaon\AppData\Local\Programs\Python\Python35\dotPY\classTest.py", line 9, in <module>
Car.start()
TypeError: start() missing 1 required positional argument: 'self'

সুবিন ভাইয়ের "পাইথন দিয়ে প্রোগ্রামিং শেখা (২য় খন্ড)" বইয়ের ৩য় অধ্যায়ে উপরের কোডের মত একটা কোড দিয়ে দেখানো হইছে Car ক্লাসের start() মেথড Car.start() এভাবে কল করা যায়। পরের পৃষ্ঠায় দেখানো হইছে কিভাবে অবজেক্ট তৈরী করে অবজেক্ট এর মেথডটা কল করা যায়। কিন্তু অবেজক্ট দিয়ে মেথড কল করলে আর্গুমেন্ট হিসাবে অবজেক্ট নিজেই অটোম্যাটিক পাস হয়ে যায় যার জন্য মেথডে self নামের একটা প্যারামিটার দিতে হয়। এই পর্যন্ত সব ঠিক আছে।

কিন্তু আমি যদি আবার আগের পৃষ্ঠায় আসি আর মেথডটা Car.start() এভাবে কল করি তখন TypeError পাই। কিন্তু বইয়ের তৃতীয় অধ্যায়ে এ নিয়ে কিছু বলা নাই যে অবজেক্ট তৈরী করে এর মাধ্যমে ক্লাসের মেথড কল করলে class.methodName() এভাবে কল করা যাবে না। আসল ব্যাপারটা কি? ক্লাস কি ২ টা উদ্দেশ্যে বানানো হয়? নাকি অন্য কিছু?

asked 06 Nov, 17:02

_Shaon_'s gravatar image

_Shaon_
604111


Car.start() কল করলে TypeError: start() missing 1 required positional argument: 'self' এরর দিচ্ছে। তার মানে হচ্ছে start() মেথডে একটা আর্গুমেন্ট থাকার কথা, কারণ ক্লাসের ভিতরে def start(self) লেখা আছে।

আর ক্লাস কী উদ্দেশ্যে বানানো হয়, সেটা বই পড়তে থাকলে আস্তে আস্তে বুঝতে পারা যাবে।

permanent link

answered 07 Nov, 03:31

Tamim%20Shahriar%20Subeen's gravatar image

Tamim Shahriar Subeen ♦♦
5.8k1026

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×66
×9
×5

question asked: 06 Nov, 17:02

question was seen: 55 times

last updated: 07 Nov, 03:31