Method Overloading

UpComing SoftWare Training Demos

๐Ÿš€ *Playwright With AI Testing Demo In Telugu*
๐Ÿ—“๏ธ *Date:* 28 Oct2026, 08:00 PM IST
๐Ÿ“ *Register Now!:*
https://www.vlrt.in/3r
๐Ÿ‘ฅ *Join WA Community:*
https://www.vlrt.in/3w
๐Ÿ’ก *Course Content:*
https://www.vlrt.in/3c
โ–ถ๏ธ *Demo Videos:*
https://www.vlrt.in/3v

๐Ÿš€ *Gen AI Engineer (Production Focused)*
๐Ÿ—“๏ธ *Date:* 29th Oct 2026, 06:00PM IST
๐Ÿ“ *Register Now!:*
https://www.vlrt.in/gr
๐Ÿ‘ฅ *Join WA Community:*
https://www.vlrt.in/gw
๐Ÿ’ก*Course Content:*
https://www.vlrt.in/ai
โ–ถ๏ธ *Demo Videos:*
https://www.vlrt.in/gv

๐Ÿš€ *Vulnerability Management Training Demo*
๐Ÿ—“๏ธ *Date:* 28th Oct 2026, 10:00 AM IST
๐Ÿ“*Register Now!:*
https://www.vlrt.in/vr
๐Ÿ‘ฅ *Join Community:*
https://www.vlrt.in/cw
๐Ÿ’ก *Course Content:*
https://www.vlrt.in/vc
โ–ถ๏ธ *Demo Videos:*
https://www.vlrt.in/Vm

Python does not support traditional method overloading in the way languages like C++ or Java do. If you define multiple methods with the same name, the last definition will simply overwrite all previous ones.

However, you can achieve the same resultโ€”making a single method behave differently based on the number or type of argumentsโ€”using Python’s flexible features.

What is Method Overloading?

In many other programming languages, method overloading is the ability to create multiple methods with the same name but with different parameters (either a different number of parameters or different types). The compiler or interpreter then decides which version of the method to call based on the arguments you provide.


Why Traditional Overloading Doesn’t Work in Python

In Python, functions and methods are objects. When you define a method in a class, you’re binding a name to a function object. If you define another method with the same name, you’re just rebinding that same name to a new function object, effectively discarding the old one.

Let’s see what happens if you try it:

Python

class MyClass:
    def show_message(self):
        print("Hello!")

    # This definition overwrites the one above
    def show_message(self, name):
        print(f"Hello, {name}!")

obj = MyClass()

# Now, let's try calling the methods
obj.show_message("Alice")  # This works fine

try:
    obj.show_message()     # This will fail
except TypeError as e:
    print(f"\nError: {e}")

Output:

Hello, Alice!

Error: MyClass.show_message() missing 1 required positional argument: 'name'

As you can see, the first show_message() method (with no parameters) was completely replaced by the second one.


How to Achieve Similar Behavior in Python

Here are the common “Pythonic” ways to simulate method overloading.

1. Using Default Arguments

This is the simplest and most common approach. You can define a single method and provide default values for some parameters, making them optional.

Example:

Let’s create a method that can calculate the area of a square (which needs one side) or a rectangle (which needs a length and width).

Python

class AreaCalculator:
    def calculate_area(self, length, width=None):
        """
        Calculates the area.
        - If only length is provided, it's treated as a square.
        - If both length and width are provided, it's a rectangle.
        """
        if width is None:
            # It's a square
            return f"Area of the square is: {length * length}"
        else:
            # It's a rectangle
            return f"Area of the rectangle is: {length * width}"

# Create an instance
calc = AreaCalculator()

# Call the method with one argument (like a square)
print(calc.calculate_area(5))

# Call the same method with two arguments (like a rectangle)
print(calc.calculate_area(5, 10))

Output:

Area of the square is: 25
Area of the rectangle is: 50

2. Using Variable-Length Arguments (*args)

For more complex scenarios where the number of arguments can vary widely, you can use *args. This packs all positional arguments into a tuple. You can then check the length of this tuple to determine how the method should behave.

Example:

Python

class Adder:
    def add(self, *args):
        # Check how many arguments were passed
        num_args = len(args)
        
        if num_args == 0:
            return "No numbers to add!"
        else:
            total = sum(args)
            return f"The sum of {num_args} numbers is: {total}"

# Create an instance
adder = Adder()

# Call the method with different numbers of arguments
print(adder.add())
print(adder.add(5))
print(adder.add(5, 10))
print(adder.add(5, 10, 15, 20))

Output:

No numbers to add!
The sum of 1 numbers is: 5
The sum of 2 numbers is: 15
The sum of 4 numbers is: 50

! เฐชเฑˆเฐฅเฐพเฐจเฑโ€Œเฐฒเฑ‹ เฐฎเฑ†เฐฅเฐกเฑ เฐ“เฐตเฐฐเฑโ€Œเฐฒเฑ‹เฐกเฐฟเฐ‚เฐ—เฑ เฐ—เฑเฐฐเฐฟเฐ‚เฐšเฐฟเฐจ เฐตเฐฟเฐตเฐฐเฐฃเฐจเฑ เฐคเฑ†เฐฒเฑเฐ—เฑเฐฒเฑ‹ เฐ•เฐฟเฐ‚เฐฆ เฐ‡เฐšเฑเฐšเฐพเฐจเฑ.

เฐชเฑˆเฐฅเฐพเฐจเฑ, C++ เฐฒเฑ‡เฐฆเฐพ เฐœเฐพเฐตเฐพ เฐตเฐ‚เฐŸเฐฟ เฐญเฐพเฐทเฐฒเฐฒเฑ‹ เฐ‰เฐจเฑเฐจเฐŸเฑเฐฒเฑเฐ—เฐพ เฐธเฐพเฐ‚เฐชเฑเฐฐเฐฆเฐพเฐฏ เฐฎเฑ†เฐฅเฐกเฑ เฐ“เฐตเฐฐเฑโ€Œเฐฒเฑ‹เฐกเฐฟเฐ‚เฐ—เฑโ€Œเฐ•เฑ เฐฎเฐฆเฑเฐฆเฐคเฑ เฐ‡เฐตเฑเฐตเฐฆเฑ. เฐฎเฑ€เฐฐเฑ เฐ’เฐ•เฑ‡ เฐชเฑ‡เฐฐเฑเฐคเฑ‹ เฐฌเฐนเฑเฐณ เฐฎเฑ†เฐฅเฐกเฑเฐธเฑโ€Œเฐจเฑ เฐกเฐฟเฐซเฑˆเฐจเฑ เฐšเฑ‡เฐธเฑเฐคเฑ‡, เฐšเฐฟเฐตเฐฐเฐฟเฐ—เฐพ เฐกเฐฟเฐซเฑˆเฐจเฑ เฐšเฑ‡เฐธเฐฟเฐจ เฐฎเฑ†เฐฅเฐกเฑ เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ‡ เฐจเฐฟเฐฒเฐฟเฐšเฐฟ เฐ‰เฐ‚เฐŸเฑเฐ‚เฐฆเฐฟ, เฐฎเฑเฐจเฑเฐชเฐŸเฐฟ เฐตเฐพเฐŸเฐจเฑเฐจเฐฟเฐ‚เฐŸเฐฟเฐจเฑ€ เฐ…เฐฆเฐฟ เฐ“เฐตเฐฐเฑโ€ŒเฐฐเฑˆเฐŸเฑ เฐšเฑ‡เฐธเฑเฐคเฑเฐ‚เฐฆเฐฟ.

เฐ…เฐฏเฐฟเฐคเฑ‡, เฐชเฑˆเฐฅเฐพเฐจเฑ เฐฏเฑŠเฐ•เฑเฐ• เฐซเฑเฐฒเฑ†เฐ•เฑเฐธเฐฟเฐฌเฑเฐฒเฑ เฐซเฑ€เฐšเฐฐเฑเฐฒเฐจเฑ เฐ‰เฐชเฐฏเฑ‹เฐ—เฐฟเฐ‚เฐšเฐฟ เฐฎเฑ€เฐฐเฑ เฐ…เฐฆเฑ‡ เฐซเฐฒเฐฟเฐคเฐพเฐจเฑเฐจเฐฟโ€”เฐ…เฐ‚เฐŸเฑ‡, เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐฒ เฐธเฐ‚เฐ–เฑเฐฏ เฐฒเฑ‡เฐฆเฐพ เฐฐเฐ•เฐพเฐจเฑเฐจเฐฟ เฐฌเฐŸเฑเฐŸเฐฟ เฐ’เฐ•เฑ‡ เฐฎเฑ†เฐฅเฐกเฑ เฐตเฐฟเฐญเฐฟเฐจเฑเฐจเฐ‚เฐ—เฐพ เฐชเฑเฐฐเฐตเฐฐเฑเฐคเฐฟเฐ‚เฐšเฑ‡เฐฒเฐพโ€”เฐธเฐพเฐงเฐฟเฐ‚เฐšเฐตเฐšเฑเฐšเฑ.

เฐฎเฑ†เฐฅเฐกเฑ เฐ“เฐตเฐฐเฑโ€Œเฐฒเฑ‹เฐกเฐฟเฐ‚เฐ—เฑ เฐ…เฐ‚เฐŸเฑ‡ เฐเฐฎเฐฟเฐŸเฐฟ?

เฐšเฐพเฐฒเฐพ เฐ‡เฐคเฐฐ เฐชเฑเฐฐเฑ‹เฐ—เฑเฐฐเฐพเฐฎเฐฟเฐ‚เฐ—เฑ เฐญเฐพเฐทเฐฒเฐฒเฑ‹, เฐฎเฑ†เฐฅเฐกเฑ เฐ“เฐตเฐฐเฑโ€Œเฐฒเฑ‹เฐกเฐฟเฐ‚เฐ—เฑ เฐ…เฐ‚เฐŸเฑ‡ เฐ’เฐ•เฑ‡ เฐ•เฑเฐฒเฐพเฐธเฑโ€Œเฐฒเฑ‹ เฐ’เฐ•เฑ‡ เฐชเฑ‡เฐฐเฑเฐคเฑ‹ เฐ•เฐพเฐจเฑ€ เฐตเฐฟเฐญเฐฟเฐจเฑเฐจ เฐชเฐพเฐฐเฐพเฐฎเฑ€เฐŸเฐฐเฑเฐฒเฐคเฑ‹ (เฐชเฐพเฐฐเฐพเฐฎเฑ€เฐŸเฐฐเฑเฐฒ เฐธเฐ‚เฐ–เฑเฐฏ เฐฒเฑ‡เฐฆเฐพ เฐตเฐพเฐŸเฐฟ เฐฐเฐ•เฐพเฐฒเฑ เฐตเฑ‡เฐฐเฑเฐตเฑ‡เฐฐเฑเฐ—เฐพ) เฐฌเฐนเฑเฐณ เฐฎเฑ†เฐฅเฐกเฑเฐธเฑโ€Œเฐจเฑ เฐ•เฑเฐฐเฐฟเฐฏเฑ‡เฐŸเฑ เฐšเฑ‡เฐฏเฐ—เฐฒเฐ—เฐกเฐ‚. เฐ…เฐชเฑเฐชเฑเฐกเฑ เฐฎเฑ€เฐฐเฑ เฐ…เฐ‚เฐฆเฐฟเฐ‚เฐšเฑ‡ เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐฒเฐจเฑ เฐฌเฐŸเฑเฐŸเฐฟ เฐ เฐตเฑ†เฐฐเฑเฐทเฐจเฑ เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐ•เฐพเฐฒเฑ เฐšเฑ‡เฐฏเฐพเฐฒเฑ‹ เฐ•เฐ‚เฐชเฑˆเฐฒเฐฐเฑ เฐฒเฑ‡เฐฆเฐพ เฐ‡เฐ‚เฐŸเฐฐเฑโ€Œเฐชเฑเฐฐเฑ†เฐŸเฐฐเฑ เฐจเฐฟเฐฐเฑเฐฃเฐฏเฐฟเฐธเฑเฐคเฑเฐ‚เฐฆเฐฟ.


เฐชเฑˆเฐฅเฐพเฐจเฑโ€Œเฐฒเฑ‹ เฐธเฐพเฐ‚เฐชเฑเฐฐเฐฆเฐพเฐฏ เฐ“เฐตเฐฐเฑโ€Œเฐฒเฑ‹เฐกเฐฟเฐ‚เฐ—เฑ เฐŽเฐ‚เฐฆเฑเฐ•เฑ เฐชเฐจเฐฟเฐšเฑ‡เฐฏเฐฆเฑ?

เฐชเฑˆเฐฅเฐพเฐจเฑโ€Œเฐฒเฑ‹, เฐซเฐ‚เฐ•เฑเฐทเฐจเฑเฐฒเฑ เฐฎเฐฐเฐฟเฐฏเฑ เฐฎเฑ†เฐฅเฐกเฑเฐธเฑ เฐ•เฑ‚เฐกเฐพ เฐ†เฐฌเฑเฐœเฑ†เฐ•เฑเฐŸเฑเฐฒเฑ‡. เฐฎเฑ€เฐฐเฑ เฐ’เฐ• เฐ•เฑเฐฒเฐพเฐธเฑโ€Œเฐฒเฑ‹ เฐ’เฐ• เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐกเฐฟเฐซเฑˆเฐจเฑ เฐšเฑ‡เฐธเฐฟเฐจเฐชเฑเฐชเฑเฐกเฑ, เฐฎเฑ€เฐฐเฑ เฐ’เฐ• เฐชเฑ‡เฐฐเฑเฐจเฑ เฐ’เฐ• เฐซเฐ‚เฐ•เฑเฐทเฐจเฑ เฐ†เฐฌเฑเฐœเฑ†เฐ•เฑเฐŸเฑโ€Œเฐ•เฑ เฐ•เฑ‡เฐŸเฐพเฐฏเฐฟเฐธเฑเฐคเฑเฐจเฑเฐจเฐพเฐฐเฑ. เฐฎเฑ€เฐฐเฑ เฐ…เฐฆเฑ‡ เฐชเฑ‡เฐฐเฑเฐคเฑ‹ เฐฎเฐฐเฑŠเฐ• เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐกเฐฟเฐซเฑˆเฐจเฑ เฐšเฑ‡เฐธเฑเฐคเฑ‡, เฐฎเฑ€เฐฐเฑ เฐ…เฐฆเฑ‡ เฐชเฑ‡เฐฐเฑเฐจเฑ เฐ•เฑŠเฐคเฑเฐค เฐซเฐ‚เฐ•เฑเฐทเฐจเฑ เฐ†เฐฌเฑเฐœเฑ†เฐ•เฑเฐŸเฑโ€Œเฐ•เฑ เฐคเฐฟเฐฐเฐฟเฐ—เฐฟ เฐ•เฑ‡เฐŸเฐพเฐฏเฐฟเฐธเฑเฐคเฑเฐจเฑเฐจเฐพเฐฐเฑ, เฐฆเฑ€เฐจเฐฟเฐตเฐฒเฑเฐฒ เฐชเฐพเฐคเฐฆเฐฟ เฐคเฑŠเฐฒเฐ—เฐฟเฐชเฑ‹เฐคเฑเฐ‚เฐฆเฐฟ.

เฐ’เฐ•เฐตเฑ‡เฐณ เฐชเฑเฐฐเฐฏเฐคเฑเฐจเฐฟเฐธเฑเฐคเฑ‡ เฐเฐฎเฐตเฑเฐคเฑเฐ‚เฐฆเฑ‹ เฐšเฑ‚เฐฆเฑเฐฆเฐพเฐ‚:

Python

class MyClass:
    def show_message(self):
        print("เฐนเฐฒเฑ‹!")

    # เฐชเฑˆเฐจ เฐ‰เฐจเฑเฐจ เฐฎเฑ†เฐฅเฐกเฑ เฐจเฑ เฐˆ เฐกเฑ†เฐซเฐฟเฐจเฐฟเฐทเฐจเฑ เฐ“เฐตเฐฐเฑโ€ŒเฐฐเฑˆเฐŸเฑ เฐšเฑ‡เฐธเฑเฐคเฑเฐ‚เฐฆเฐฟ
    def show_message(self, name):
        print(f"เฐนเฐฒเฑ‹, {name}!")

obj = MyClass()

# เฐ‡เฐชเฑเฐชเฑเฐกเฑ, เฐฎเฑ†เฐฅเฐกเฑเฐธเฑ เฐจเฑ เฐ•เฐพเฐฒเฑ เฐšเฑ‡เฐฏเฐกเฐพเฐจเฐฟเฐ•เฐฟ เฐชเฑเฐฐเฐฏเฐคเฑเฐจเฐฟเฐฆเฑเฐฆเฐพเฐ‚
obj.show_message("เฐ†เฐฒเฐฟเฐธเฑ")  # เฐ‡เฐฆเฐฟ เฐธเฐฐเฐฟเฐ—เฑเฐ—เฐพ เฐชเฐจเฐฟเฐšเฑ‡เฐธเฑเฐคเฑเฐ‚เฐฆเฐฟ

try:
    obj.show_message()     # เฐ‡เฐฆเฐฟ เฐตเฐฟเฐซเฐฒเฐฎเฐตเฑเฐคเฑเฐ‚เฐฆเฐฟ
except TypeError as e:
    print(f"\nเฐฒเฑ‹เฐชเฐ‚ (Error): {e}")

เฐซเฐฒเฐฟเฐคเฐ‚ (Output):

เฐนเฐฒเฑ‹, เฐ†เฐฒเฐฟเฐธเฑ!

เฐฒเฑ‹เฐชเฐ‚ (Error): MyClass.show_message() missing 1 required positional argument: 'name'

เฐฎเฑ€เฐฐเฑ เฐšเฑ‚เฐธเฐฟเฐจเฐŸเฑเฐฒเฑเฐ—เฐพ, เฐฎเฑŠเฐฆเฐŸเฐฟ show_message() เฐฎเฑ†เฐฅเฐกเฑ (เฐชเฐพเฐฐเฐพเฐฎเฑ€เฐŸเฐฐเฑเฐฒเฑ เฐฒเฑ‡เฐจเฐฟเฐฆเฐฟ) เฐฐเฑ†เฐ‚เฐกเฐตเฐฆเฐพเฐจเฐฟ เฐฆเฑเฐตเฐพเฐฐเฐพ เฐชเฑ‚เฐฐเฑเฐคเฐฟเฐ—เฐพ เฐฐเฑ€เฐชเฑเฐฒเฑ‡เฐธเฑ เฐšเฑ‡เฐฏเฐฌเฐกเฐฟเฐ‚เฐฆเฐฟ.


เฐชเฑˆเฐฅเฐพเฐจเฑโ€Œเฐฒเฑ‹ เฐ‡เฐฒเฐพเฐ‚เฐŸเฐฟ เฐชเฑเฐฐเฐตเฐฐเฑเฐคเฐจเฐจเฑ เฐŽเฐฒเฐพ เฐธเฐพเฐงเฐฟเฐ‚เฐšเฐพเฐฒเฐฟ?

เฐฎเฑ†เฐฅเฐกเฑ เฐ“เฐตเฐฐเฑโ€Œเฐฒเฑ‹เฐกเฐฟเฐ‚เฐ—เฑโ€Œเฐจเฑ เฐ…เฐจเฑเฐ•เฐฐเฐฟเฐ‚เฐšเฐกเฐพเฐจเฐฟเฐ•เฐฟ เฐธเฐพเฐงเฐพเฐฐเฐฃเฐ‚เฐ—เฐพ เฐ‰เฐชเฐฏเฑ‹เฐ—เฐฟเฐ‚เฐšเฑ‡ “เฐชเฑˆเฐฅเฐพเฐจเฐฟเฐ•เฑ” เฐฎเฐพเฐฐเฑเฐ—เฐพเฐฒเฑ เฐ‡เฐ•เฑเฐ•เฐก เฐ‰เฐจเฑเฐจเฐพเฐฏเฐฟ.

1. เฐกเฑ€เฐซเฐพเฐฒเฑเฐŸเฑ เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐธเฑ (Default Arguments) เฐ‰เฐชเฐฏเฑ‹เฐ—เฐฟเฐ‚เฐšเฐฟ

เฐ‡เฐฆเฐฟ เฐšเฐพเฐฒเฐพ เฐธเฑเฐฒเฐญเฐฎเฑˆเฐจ เฐฎเฐฐเฐฟเฐฏเฑ เฐธเฐพเฐงเฐพเฐฐเฐฃ เฐชเฐฆเฑเฐงเฐคเฐฟ. เฐฎเฑ€เฐฐเฑ เฐ’เฐ•เฑ‡ เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐกเฐฟเฐซเฑˆเฐจเฑ เฐšเฑ‡เฐธเฐฟ, เฐ•เฑŠเฐจเฑเฐจเฐฟ เฐชเฐพเฐฐเฐพเฐฎเฑ€เฐŸเฐฐเฑเฐฒเฐ•เฑ เฐกเฑ€เฐซเฐพเฐฒเฑเฐŸเฑ เฐตเฐฟเฐฒเฑเฐตเฐฒเฐจเฑ เฐ…เฐ‚เฐฆเฐฟเฐ‚เฐšเฐกเฐ‚ เฐฆเฑเฐตเฐพเฐฐเฐพ เฐตเฐพเฐŸเฐฟเฐจเฐฟ เฐเฐšเฑเฐ›เฐฟเฐ•เฐ‚ (optional) เฐšเฑ‡เฐฏเฐตเฐšเฑเฐšเฑ.

เฐ‰เฐฆเฐพเฐนเฐฐเฐฃ:

เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ (เฐ’เฐ• เฐญเฑเฐœเฐ‚ เฐ…เฐตเฐธเฐฐเฐ‚) เฐฒเฑ‡เฐฆเฐพ เฐฆเฑ€เฐฐเฑเฐ˜เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ (เฐชเฑŠเฐกเฐตเฑ เฐฎเฐฐเฐฟเฐฏเฑ เฐตเฑ†เฐกเฐฒเฑเฐชเฑ เฐ…เฐตเฐธเฐฐเฐ‚) เฐฏเฑŠเฐ•เฑเฐ• เฐตเฑˆเฐถเฐพเฐฒเฑเฐฏเฐพเฐจเฑเฐจเฐฟ เฐฒเฑ†เฐ•เฑเฐ•เฐฟเฐ‚เฐšเฐ—เฐฒ เฐ’เฐ• เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐ•เฑเฐฐเฐฟเฐฏเฑ‡เฐŸเฑ เฐšเฑ‡เฐฆเฑเฐฆเฐพเฐ‚.

Python

class AreaCalculator:
    def calculate_area(self, length, width=None):
        """
        เฐตเฑˆเฐถเฐพเฐฒเฑเฐฏเฐพเฐจเฑเฐจเฐฟ เฐฒเฑ†เฐ•เฑเฐ•เฐฟเฐธเฑเฐคเฑเฐ‚เฐฆเฐฟ.
        - เฐ•เฑ‡เฐตเฐฒเฐ‚ เฐชเฑŠเฐกเฐตเฑ เฐฎเฐพเฐคเฑเฐฐเฐฎเฑ‡ เฐ‡เฐธเฑเฐคเฑ‡, เฐ…เฐฆเฐฟ เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚เฐ—เฐพ เฐชเฐฐเฐฟเฐ—เฐฃเฐฟเฐ‚เฐšเฐฌเฐกเฑเฐคเฑเฐ‚เฐฆเฐฟ.
        - เฐชเฑŠเฐกเฐตเฑ เฐฎเฐฐเฐฟเฐฏเฑ เฐตเฑ†เฐกเฐฒเฑเฐชเฑ เฐฐเฑ†เฐ‚เฐกเฑ‚ เฐ‡เฐธเฑเฐคเฑ‡, เฐ…เฐฆเฐฟ เฐฆเฑ€เฐฐเฑเฐ˜เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚.
        """
        if width is None:
            # เฐ‡เฐฆเฐฟ เฐ’เฐ• เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚
            return f"เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ เฐฏเฑŠเฐ•เฑเฐ• เฐตเฑˆเฐถเฐพเฐฒเฑเฐฏเฐ‚: {length * length}"
        else:
            # เฐ‡เฐฆเฐฟ เฐ’เฐ• เฐฆเฑ€เฐฐเฑเฐ˜เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚
            return f"เฐฆเฑ€เฐฐเฑเฐ˜เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ เฐฏเฑŠเฐ•เฑเฐ• เฐตเฑˆเฐถเฐพเฐฒเฑเฐฏเฐ‚: {length * width}"

# เฐ’เฐ• เฐ‡เฐจเฑโ€ŒเฐธเฑเฐŸเฐพเฐจเฑเฐธเฑโ€Œเฐจเฑ เฐ•เฑเฐฐเฐฟเฐฏเฑ‡เฐŸเฑ เฐšเฑ‡เฐฏเฐ‚เฐกเฐฟ
calc = AreaCalculator()

# เฐ’เฐ• เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑโ€Œเฐคเฑ‹ เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐ•เฐพเฐฒเฑ เฐšเฑ‡เฐฏเฐ‚เฐกเฐฟ (เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ เฐฒเฐพเฐ—เฐพ)
print(calc.calculate_area(5))

# เฐ…เฐฆเฑ‡ เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐฐเฑ†เฐ‚เฐกเฑ เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐฒเฐคเฑ‹ เฐ•เฐพเฐฒเฑ เฐšเฑ‡เฐฏเฐ‚เฐกเฐฟ (เฐฆเฑ€เฐฐเฑเฐ˜เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ เฐฒเฐพเฐ—เฐพ)
print(calc.calculate_area(5, 10))

เฐซเฐฒเฐฟเฐคเฐ‚ (Output):

เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ เฐฏเฑŠเฐ•เฑเฐ• เฐตเฑˆเฐถเฐพเฐฒเฑเฐฏเฐ‚: 25
เฐฆเฑ€เฐฐเฑเฐ˜เฐšเฐคเฑเฐฐเฐธเฑเฐฐเฐ‚ เฐฏเฑŠเฐ•เฑเฐ• เฐตเฑˆเฐถเฐพเฐฒเฑเฐฏเฐ‚: 50

2. เฐตเฑ‡เฐฐเฐฟเฐฏเฐฌเฑเฐฒเฑ-เฐฒเฑ†เฐ‚เฐ—เฑเฐคเฑ เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐธเฑ (*args) เฐ‰เฐชเฐฏเฑ‹เฐ—เฐฟเฐ‚เฐšเฐฟ

เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐฒ เฐธเฐ‚เฐ–เฑเฐฏ เฐŽเฐ•เฑเฐ•เฑเฐตเฐ—เฐพ เฐฎเฐพเฐฐเฑ‡ เฐธเฐ‚เฐ•เฑเฐฒเฐฟเฐทเฑเฐŸ เฐธเฐ‚เฐฆเฐฐเฑเฐญเฐพเฐฒ เฐ•เฑ‹เฐธเฐ‚, เฐฎเฑ€เฐฐเฑ *args เฐจเฑ เฐ‰เฐชเฐฏเฑ‹เฐ—เฐฟเฐ‚เฐšเฐตเฐšเฑเฐšเฑ. เฐ‡เฐฆเฐฟ เฐ…เฐจเฑเฐจเฐฟ เฐชเฑŠเฐœเฐฟเฐทเฐจเฐฒเฑ เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐฒเฐจเฑ เฐ’เฐ• เฐŸเฐชเฑเฐฒเฑ (tuple) เฐฒเฑ‹เฐ•เฐฟ เฐชเฑเฐฏเฐพเฐ•เฑ เฐšเฑ‡เฐธเฑเฐคเฑเฐ‚เฐฆเฐฟ. เฐฎเฑ†เฐฅเฐกเฑ เฐŽเฐฒเฐพ เฐชเฑเฐฐเฐตเฐฐเฑเฐคเฐฟเฐ‚เฐšเฐพเฐฒเฑ‹ เฐจเฐฟเฐฐเฑเฐฃเฐฏเฐฟเฐ‚เฐšเฐกเฐพเฐจเฐฟเฐ•เฐฟ เฐฎเฑ€เฐฐเฑ เฐˆ เฐŸเฐชเฑเฐฒเฑ เฐฏเฑŠเฐ•เฑเฐ• เฐชเฑŠเฐกเฐตเฑเฐจเฑ เฐคเฐจเฐฟเฐ–เฑ€ เฐšเฑ‡เฐฏเฐตเฐšเฑเฐšเฑ.

เฐ‰เฐฆเฐพเฐนเฐฐเฐฃ:

Python

class Adder:
    def add(self, *args):
        # เฐŽเฐจเฑเฐจเฐฟ เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐฒเฑ เฐชเฐพเฐธเฑ เฐšเฑ‡เฐฏเฐฌเฐกเฑเฐกเฐพเฐฏเฑ‹ เฐคเฐจเฐฟเฐ–เฑ€ เฐšเฑ‡เฐฏเฐ‚เฐกเฐฟ
        num_args = len(args)
        
        if num_args == 0:
            return "เฐ•เฑ‚เฐกเฐŸเฐพเฐจเฐฟเฐ•เฐฟ เฐธเฐ‚เฐ–เฑเฐฏเฐฒเฑ เฐฒเฑ‡เฐตเฑ!"
        else:
            total = sum(args)
            return f"{num_args} เฐธเฐ‚เฐ–เฑเฐฏเฐฒ เฐฎเฑŠเฐคเฑเฐคเฐ‚: {total}"

# เฐ’เฐ• เฐ‡เฐจเฑโ€ŒเฐธเฑเฐŸเฐพเฐจเฑเฐธเฑโ€Œเฐจเฑ เฐ•เฑเฐฐเฐฟเฐฏเฑ‡เฐŸเฑ เฐšเฑ‡เฐฏเฐ‚เฐกเฐฟ
adder = Adder()

# เฐตเฐฟเฐญเฐฟเฐจเฑเฐจ เฐธเฐ‚เฐ–เฑเฐฏเฐฒ เฐ†เฐฐเฑเฐ—เฑเฐฏเฑเฐฎเฑ†เฐ‚เฐŸเฑเฐฒเฐคเฑ‹ เฐฎเฑ†เฐฅเฐกเฑโ€Œเฐจเฑ เฐ•เฐพเฐฒเฑ เฐšเฑ‡เฐฏเฐ‚เฐกเฐฟ
print(adder.add())
print(adder.add(5))
print(adder.add(5, 10))
print(adder.add(5, 10, 15, 20))

เฐซเฐฒเฐฟเฐคเฐ‚ (Output):

เฐ•เฑ‚เฐกเฐŸเฐพเฐจเฐฟเฐ•เฐฟ เฐธเฐ‚เฐ–เฑเฐฏเฐฒเฑ เฐฒเฑ‡เฐตเฑ!
1 เฐธเฐ‚เฐ–เฑเฐฏเฐฒ เฐฎเฑŠเฐคเฑเฐคเฐ‚: 5
2 เฐธเฐ‚เฐ–เฑเฐฏเฐฒ เฐฎเฑŠเฐคเฑเฐคเฐ‚: 15
4 เฐธเฐ‚เฐ–เฑเฐฏเฐฒ เฐฎเฑŠเฐคเฑเฐคเฐ‚: 50

Similar Posts

  • positive lookahead assertion

    A positive lookahead assertion in Python’s re module is a zero-width assertion that checks if the pattern that follows it is present, without including that pattern in the overall match. It is written as (?=…). The key is that it’s a “lookahead”โ€”the regex engine looks ahead in the string to see if the pattern inside…

  • Vs code

    What is VS Code? ๐Ÿ’ป Visual Studio Code (VS Code) is a free, lightweight, and powerful code editor developed by Microsoft. It supports multiple programming languages (Python, JavaScript, Java, etc.) with: VS Code is cross-platform (Windows, macOS, Linux) and widely used for web development, data science, and general programming. ๐ŸŒ๐Ÿ“Šโœ๏ธ How to Install VS Code…

  • Python Program to Check Pangram Phrases

    Python Program to Check Pangram Phrases What is a Pangram? A pangram is a sentence or phrase that contains every letter of the alphabet at least once. Method 1: Using Set Operations python def is_pangram_set(phrase): “”” Check if a phrase is a pangram using set operations “”” # Convert to lowercase and remove non-alphabetic characters…

  • Dynamically Typed vs. Statically Typed Languages ๐Ÿ”„โ†”๏ธ

    Dynamically Typed vs. Statically Typed Languages ๐Ÿ”„โ†”๏ธ Dynamically Typed Languages ๐Ÿš€ Python Pros: Cons: Statically Typed Languages ๐Ÿ”’ Java Pros: Cons: Key Differences ๐Ÿ†š Feature Dynamically Typed Statically Typed Type Checking Runtime Compile-time Variable Types Can change during execution Fixed after declaration Error Detection Runtime exceptions Compile-time failures Speed Slower (runtime checks) Faster (optimized binaries)…

  • Default Arguments

    Default Arguments in Python Functions Default arguments allow you to specify default values for function parameters. If a value isn’t provided for that parameter when the function is called, Python uses the default value instead. Basic Syntax python def function_name(parameter=default_value): # function body Simple Examples Example 1: Basic Default Argument python def greet(name=”Guest”): print(f”Hello, {name}!”)…

Leave a Reply

Your email address will not be published. Required fields are marked *