• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python面向对象之内置函数相关知识总结

    Python内置函数

    1. classmethod、staticmethod、property 。

    上述三个内置函数在文章(Python进阶——面向对象之成员)的方法和属性中已经详细介绍使用,可以返回浏览,具体地址:https://www.jb51.net/article/215871.htm

    2. callable,是否可在后面加括号执行。

     函数

    def func():
        pass
     
    print( callable(func) ) # True

    class Foo(object):
        pass
     
    print( callable(Foo) ) # True

    类中具有__call__方法的对象

    class Foo(object):
    	pass
     
    obj = Foo()
    print( callable(obj) ) # False
    class Foo(object):
     
        def __call__(self, *args, **kwargs):
            pass
        
    obj = Foo()
    print( callable(obj) ) # True

    所以当你以后在见到下面的情况时,首先就要想到handler可以是:函数、类、具有call方法的对象 这三种,到底具体是什么,需要根据代码的调用关系才能分析出来。

    def do_something(handler):
        handler()

    3. super,按照mro继承关系向上找成员。

    class Top(object):
        def message(self, num):
            print("Top.message", num)
            
    class Base(Top):
        pass
     
    class Foo(Base):
     
        def message(self, num):
            print("Foo.message", num)
            super().message(num + 100)
     
     
    obj = Foo()
    obj.message(1)
     
    >>> Foo.message 1
    >>> Top.message 101
    
    class Base(object):
     
        def message(self, num):
            print("Base.message", num)
            super().message(1000)
     
     
    class Bar(object):
     
        def message(self, num):
            print("Bar.message", num)
     
     
    class Foo(Base, Bar):
        pass
     
     
    obj = Foo()
    obj.message(1)
     
    >>> Base.message 1
    >>> Bar.message 1000
    

    应用场景

    假设有一个类,他原来已实现了某些功能,但我们想在他的基础上再扩展点功能,重新写一遍?比较麻烦,此时可以用super。

    info = dict() # {}
    info['name'] = "华青水上"
    info["age"] = 18
     
    value = info.get("age")
     
    print(value)
    class MyDict(dict):
     
        def get(self, k):
            print("自定义功能")
            return super().get(k)
     
     
    info = MyDict()
    info['name'] = "华青水上" # __setitem__
    info["age"] = 18       # __setitem__
    print(info)
     
    value = info.get("age")
     
    print(value)
    

    4. type,获取一个对象的类型。

    v1 = "华青水上"
    result = type(v1)
    print(result) # class 'str'>
    v2 = "华青水上"
    print( type(v2) == str )  # True
     
    v3 = [11, 22, 33] # list(...)
    print( type(v3) == list )  # True
    class Foo(object):
        pass
     
    v4 = Foo()
     
    print( type(v4) == Foo )  # True

    5. isinstance,判断对象是否是某个类或其子类的实例。

    class Top(object):
        pass
     
     
    class Base(Top):
        pass
     
     
    class Foo(Base):
        pass
     
     
    v1 = Foo()
     
    print( isinstance(v1, Foo) )   # True,对象v1是Foo类的实例
    print( isinstance(v1, Base) )  # True,对象v1的Base子类的实例。
    print( isinstance(v1, Top) )   # True,对象v1的Top子类的实例。
    
    class Animal(object):
        def run(self):
            pass
     
    class Dog(Animal):
        pass
     
    class Cat(Animal):
        pass
     
    data_list = [
        "alex",
        Dog(),
        Cat(),
    	"root"
    ]
     
    for item in data_list:
        if type(item) == Cat:
            item.run()
        elif type(item) == Dog:
            item.run()
        else:
            pass
        
    for item in data_list:
        if isinstance(item, Animal):
            item.run()
        else:
            pass
    

    6. issubclass,判断类是否是某个类的子孙类。

    class Top(object):
        pass
     
     
    class Base(Top):
        pass
     
     
    class Foo(Base):
        pass
     
     
    print(issubclass(Foo, Base))  # True
    print(issubclass(Foo, Top))   # True
    

    至此,关于面向对象的一些内置函数已经总结完毕,如有不当之处,欢迎指正!

    到此这篇关于Python面向对象之内置函数相关知识总结的文章就介绍到这了,更多相关Python内置函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python初学者必须掌握的25个内置函数详解
    • 10个使用Python必须知道的内置函数
    • Python函数的作用域及内置函数详解
    • python内置函数之slice案例详解
    • Python 内置函数速查表一览
    • python高级内置函数用法实例
    上一篇:Python绘图之turtle库的基础语法使用
    下一篇:Python面向对象之成员相关知识总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python面向对象之内置函数相关知识总结 Python,面向,对,象之,内置,