码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-14 01:14:07      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:反射   toc   assm   title   ssm   布尔值   try   list   @class   

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__执行前触发。

单例模式

什么是单例模式

单例模式是指单个实例

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

作用

可以减少内存地址的占用

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

标签:反射   toc   assm   title   ssm   布尔值   try   list   @class   

原文地址:https://www.cnblogs.com/lyyblog0715/p/11669208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!