Người ta có thể làm điều gì đó như thế này:Sử dụng cùng một chức năng như ví dụ và classmethod trong python
class master:
@combomethod
def foo(param):
param.bar() # Param could be type as well as object
class slaveClass(master):
@classmethod
def bar(cls):
print("This is class method")
slaveType = slaveClass
slaveType.foo()
class slaveInstance(master):
def __init__(self, data):
self.data = data
def bar(self):
print("This is "+self.data+" method")
slaveType = slaveInstance("instance")
slaveType.foo()
combomethod
được định nghĩa trong "Creating a method that is simultaneously an instance and class method".
Câu hỏi của tôi là, tại sao nó như thế này, thông số đầu tiên mặc định không thể được sử dụng làm thông số của comboclass. Hoặc ít nhất, tại sao tôi không thể vượt qua đối tượng để classmethod như tham số đầu tiên. Tôi biết whats sự khác biệt giữa classmethod và instancemethods và những gì là trang trí, nhưng tôi có thể không hiểu, làm thế nào được xây dựng trong @classmethod
và thông qua self
thông qua được thực hiện. Có chỉ là một số hạn chế kỹ thuật? Hoặc tại sao không phải là combomethod
allready được tích hợp sẵn?
Vui lòng không sử dụng chữ viết ("smth") trong các bài đăng SO. –
Tôi không thể làm cho người đứng đầu cũng không đuôi của những gì bạn đang yêu cầu ở đây ... –
@Ignacio Tôi muốn biết nếu tôi làm tất cả sai và có cách đơn giản hơn? Tôi nghĩ rằng có thể có một số cách xây dựng để làm điều tương tự và nếu không, tại sao không? – Johu