Python không thực hiện quá tải chức năng. Đây là một hệ quả của nó là một ngôn ngữ lỏng lẻo. Thay vào đó, bạn có thể chỉ định một số lượng các đối số không xác định và xử lý việc diễn giải của chúng trong logic chức năng.
Có một số cách bạn có thể thực hiện việc này. Bạn có thể chỉ định đối số tùy chọn cụ thể:
def func1(arg1, arg2=None):
if arg2 != None:
print "%s %s" % (arg1, arg2)
else:
print "%s" % (arg1)
Gọi đó là chúng tôi nhận được:
>>> func1(1, 2)
1 2
Hoặc bạn có thể chỉ định một số không rõ các đối số giấu tên (ví dụ:đối số được truyền vào một mảng):
def func2(arg1, *args):
if args:
for item in args:
print item
else:
print arg1
Gọi đó là chúng tôi nhận được:
>>> func2(1, 2, 3, 4, 5)
2
3
4
5
Hoặc bạn có thể chỉ định một số không rõ các đối số được đặt tên (ví dụ: đối số được truyền trong một cuốn từ điển):
def func3(arg1, **args):
if args:
for k, v in args.items():
print "%s %s" % (k, v)
else:
print arg1
Gọi điện cho chúng tôi là:
>>> func3(1, arg2=2, arg3=3)
arg2 2
arg3 3
Bạn có thể sử dụng những công trình này để tạo ra hành vi mà bạn đang tìm kiếm trong quá tải.
* Xin vui lòng * kế thừa từ đối tượng! Bạn không * thực sự * muốn một lớp học kiểu cũ, phải không? (Điều này sẽ không phải là vấn đề trong Python 3, nhưng các câu lệnh in của bạn cho tôi biết rằng bạn đang sử dụng Python 2.) –