第二十二天:有关类的一些方法

classmethod

classmethod是python自带的装饰器

作用

装饰定义在类中的函数,使这个函数变成类的绑定方法,我们都知道对象的绑定方法的特殊之处在于,它会把对象当作第一个参数传入,而类的绑定方法与此相似,它会把对象当第一个参数传入。

使用方法

class Test:
    
    @classmethod
    def call(cls):
        pass
    

staticmethod

与classmethod相同,它也是一种python自带的装饰器

作用

装饰定义在类内部的函数,使这个函数既不是类的绑定方法,也不是对象的绑定方法

使用方法

class Test:
    
    @staticmethod
    def call():
        pass

isinstance

python的内置函数,用于判断一个对象是否是一个类的实例,该函数有两个参数,需要传个对象和一个类,返回一个布尔值

class Foo:
    pass

foo = Foo()
print(isinstance(foo,Foo))

issubclass

python 内置函数,用于判断一个类是否是另一个类的子类,该函数需要传两个类进去,返回一个布尔值

class Foo:
    pass
    
class Goo(Foo):
    pass
    
print(issubclass(Goo,Foo))

反射

反射指的是通过字符串对对象或者类的属性进行操作

以下是几种常用的

hasattr

通过字符串判断该字符串是否是对象或类的属性,有两个参数,类或对象和一个字符串,返回布尔值

class People:
    country = 'China'

    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

        
p = People('lk',18,'male')

print(hasattr(p,'name'))

getattr

通过字符串获取对象或类的属性

print(getattr(p,'name'))

setattr

通过字符串,设置对象或类的属性

setattr(p,'name','ll')

delattr

通过字符串,删除对象或类的属性

 delattr(p,'name')

魔法方法

什么是魔法方法

凡是在类内部定义,以“__ 开头 __结尾”的方法都称之为魔法方法,又称“类的内置方法”。魔法方法会在某些条件成立时触发

几种常用的魔法方法

__ init __ : 在调用类时触发。

__ str__ : 会在打印对象时触发。

__ del__ : 对象被销毁前执行该方法,该方法会在最后执行。

__ getattr__ : 会在对象.属性时,“属性没有”的情况下才会触发。

__ setattr__ : 会在 “对象.属性 = 属性值” 时触发。

__ call__ : 会在对象被调用时触发。

__ new__ : 会在__ init__执行前触发。

单例模式

什么是单例模式

单例模式是指单个实例

单例模式可以让调用者多次调用这个类时指向同一个内存地址

作用

可以减少内存地址的占用

猜你喜欢

转载自www.cnblogs.com/lyyblog0715/p/11669208.html
今日推荐