标签:elf 创建 静态 person return 调用 str name test
类中定义的方法大致可以分为两类:绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。
对象的绑定方法/类的绑定方法
在类中没有被任何装饰器修饰的方法就是 绑定到对象的方法,这类方法专门为对象定制。
通常说的绑定方法都是对象的绑定方法,因为类创建时默认就是对象的绑定方法。
当对象调用时,不需要传递第一个参数。
类中使用 @classmethod 修饰的方法就是绑定到类的方法。这类方法专门为类定制。通过类名调用绑定到类的方法时,会将类本身当做参数传给类方法的第一个参数。
类的绑定方法,也可以由对象来调
class Person:
def __init__(self,name,age):
print(self)
self.name=name
self.age=age
@classmethod # 使用 @classmethod 装饰器,变为类的绑定方法
def test(cls):
print(cls)
print('类的绑定方法')
#类实例化产生对象,返回
return cls('lqz',19)
# 使用类绑定方法
per1=Person.test()
# 通过对象调用类绑定方法
per2=Person('xc',18)
per2.test()
不需要通过对象,只需要通过类就能完成某些事的时候,就把该方法定义为类的绑定方法
在类内部使用 @staticmethod 修饰的方法即为非绑定方法,这类方法和普通定义的函数没有区别,不与类或对象绑定,谁都可以调用,且没有自动传值的效果。
静态方法不属于任何人的绑定方法,就是个普通函数。但是别人一样可以使用
class Person:
def __init__(self,name, age):
self.id=self.get_uuid()
self.name = name
self.age = age
#当成一个普通函数,只不过是写在类内部的
@staticmethod
def static_method():
print('我是静态方法,谁都不绑定')
@staticmethod
# 生成一个唯一的id号
def get_uuid():
import uuid
return uuid.uuid4()
# 类来调用静态方法
Person.static_method()
# 对象来调用静态方法
p=Person('xc',19)
p.static_method()
当这个方法,跟类和对象都没有关系的时候,可以定义成静态方法,一般在类内部使用,类外部也可以使用
就是一个普通函数,想把它拿到类中管理,就可以定义成静态方法
标签:elf 创建 静态 person return 调用 str name test
原文地址:https://www.cnblogs.com/XuChengNotes/p/11429730.html