我是靠谱客的博主 拉长外套,最近开发中收集的这篇文章主要介绍python 类调用不存在的方法_在Python中调用时是否可以创建不存在的方法?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python首先检查是否存在具有该名称的属性,如果存在,则调用该属性。没有明确的方法可以提前检测是否调用此属性。在

以下是实现你想要的东西的巧妙方法:class Dispatcher(object):

def __init__(self, caller, name):

self.name = name

self.caller = caller

def __call__(self, *a, **ka):

print('Call on Dispatcher registered!',

'Will create method on',

self.caller.__class__.__name__,

'now.')

setattr(self.caller, self.name, self.mock)

return getattr(self.caller, self.name)(*a, **ka)

@classmethod

def mock(cls, *a, **ka):

return 'Some default value for newly created methods.'

class MyClass(object):

def __getattr__(self, attr):

return Dispatcher(self, attr)

instance = MyClass()

print(instance.new_method, 'n')

print(instance.new_method(), 'n')

print(instance.new_method(), 'n')

print(instance.other_method)

输出:

^{pr2}$

尽管此解决方案很全面,但每次尝试访问不存在的属性时,它都会返回Dispatcher的新实例。在

如果调用Dispatcher实例(例如Dispatcher(self, attr)()),它将把mock作为一个名为attr的新方法,作为第一个参数传递给构造函数。在

最后

以上就是拉长外套为你收集整理的python 类调用不存在的方法_在Python中调用时是否可以创建不存在的方法?的全部内容,希望文章能够帮你解决python 类调用不存在的方法_在Python中调用时是否可以创建不存在的方法?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部