Well, a generic function is just a block of code that can be reused in your codebase. You can, for example, have a utility function dasherize which replaces spaces in words with a hyphen like this,
Now class methods are a member of a class that you have defined. For example, you have a class called Vehicle and you have a class method named turnLeft().
You will be using this class method when you have to work with a vehicle object.
This is just a very basic explanation. There is no preference as such but depends on how you have structured your code and what you are trying to do.
Oops, I probably misunderstood your question then!
Ok let me try to explain the difference:
Here is a class with a simple method
class Avenger:
def __init__(self, name, weapon):
self.name = name
self.weapon = weapon
def fight(self):
print(self.weapon)
@classmethod
def showOrganization(cls):
print('MARVEL INC')
spiderman = Avenger('Spiderman', 'dispatch a web')
spiderman.fight() # dispatch a web
Avenger.showOrganization() # this works
spiderman.showOrganization() # this also works
Here what I am trying to show is you can know the Avenger's organization name by simply calling the class method. You can also create an avenger and then get the name of the organization from that avenger but hope you understand the difference!
Hey Peter,
Thanks for your question.
Well, a generic function is just a block of code that can be reused in your codebase. You can, for example, have a utility function dasherize which replaces spaces in words with a hyphen like this,
This you can reuse anywhere in your code.
Now class methods are a member of a class that you have defined. For example, you have a class called Vehicle and you have a class method named turnLeft().
You will be using this class method when you have to work with a vehicle object.
This is just a very basic explanation. There is no preference as such but depends on how you have structured your code and what you are trying to do.
Hope it helps!
Thank you
But I mean the difference between class method and class method with @classmethod
Oops, I probably misunderstood your question then!
Ok let me try to explain the difference:
Here is a class with a simple method
Here what I am trying to show is you can know the Avenger's organization name by simply calling the class method. You can also create an avenger and then get the name of the organization from that avenger but hope you understand the difference!
Great thank you for the example!