python如何执行调用函数的对象方法,该函数从同一对象调用另一个方法

里泽尔谷物

有一个叫做start_party的函数,它不属于任何类,它是一个独立的函数,可以打印音乐,告诉参与者参加者做出一些有趣的事情,例如跳舞或唱歌。

一个可以像参加聚会的一样适合自己,它有两种状态感觉:连接和断开。可以告诉一个人根据外部功能执行一个动作(方法)。因此,当人们执行动作时,它始于感觉到连接,并以要求实现的任何方法参与外部功能。外部功能停止(开始聚会结束...),因此该人员感到与这一不可思议的时刻断开了联系,因为它通过打印使我们知道。

所有这些经验的实现如下:

class Feeling():
    def __init__(self):
        self.data_in = 'into connection'
        self.data_out = 'out of connection'


class Person():
    def __init__(self):
        self.feeling = Feeling()

    def execute(self, outer_function, inner_function):
        print(self.feeling.data_in)
        outer_function(self, inner_function)
        print(self.feeling.data_out)

    def dance(self):
        print(' └[∵┌]└[ ∵ ]┘[┐∵]┘ ')

    def sing(self):
        print('( ◜◒◝ )')


def start_party(party_participant, inner_function):
    print('♬♩♪♩')
    party_participant.inner_function()
    print('♬♩♪♩')


liz = Person()
liz.execute(start_party, dance)

我尽力而为,没有编译,它给了我一个:

NameError:未定义名称“舞蹈”

但是仍然主要的问题不是编译,而是设计。(尽管我也需要修复编译。)

所需的输出应为:

into connection
♬♩♪♩
└[∵┌]└[ ∵ ]┘[┐∵]┘
♬♩♪♩
out of connection
斯蒂芬·劳奇

使用getattr()以获取类的方法来执行,如:

码:

def start_party(party_participant, inner_function):
    print('♬♩♪♩')
    getattr(party_participant, inner_function)()
    print('♬♩♪♩')

测试代码:

class Feeling():
    def __init__(self):
        self.data_in = 'into connection'
        self.data_out = 'out of connection'


class Person():
    def __init__(self):
        self.feeling = Feeling()

    def execute(self, outer_function, inner_function):
        print(self.feeling.data_in)
        outer_function(self, inner_function)
        print(self.feeling.data_out)

    def dance(self):
        print(' └[∵┌]└[ ∵ ]┘[┐∵]┘ ')

    def sing(self):
        print('( ◜◒◝ )')


def start_party(party_participant, inner_function):
    print('♬♩♪♩')
    getattr(party_participant, inner_function)()
    print('♬♩♪♩')


liz = Person()
liz.execute(start_party, 'dance')

结果:

into connection
♬♩♪♩
 └[∵┌]└[ ∵ ]┘[┐∵]┘ 
♬♩♪♩
out of connection

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从对象数组另一个类调用方法?

如何使用cfc对象的引用从另一个函数调用一个函数?

如果一个@Transactional带注释的方法在同一对象实例上调用另一个@Transactional带注释的方法会发生什么?

Python 3:如何从另一个文件调用函数并将参数传递给该函数?

如何获取另一个函数的__LINE__的值(在调用该函数之前)?

Firebase Cloud函数-如何调用另一个函数并返回对象

不能多次调用同一对象的方法PHP

从另一个对象调用原型方法

从同一对象内的另一个对象分配值

如何在同一对象中约束一个属性与另一个属性的类型?

在管道中的同一对象上调用两个不同的函数(%>%)

如何模拟更新同一对象的函数/方法?

如何创建一个对象创建函数,该函数将由与其关联的名称调用?

在构造函数C ++中调用另一个对象的方法

从Javascript的同一对象中使用setTimeout函数调用对象方法

调用嵌套函数到同一对象

我无法从一个函数调用对象到另一个函数

Javascript对象。如何创建一个在同一对象内调用函数的按钮

定义一个函数,该函数为各种字符串python调用另一个函数

当从另一个函数中调用该函数时,如何抑制该函数中的代码行?

如何从对象,JavaScript中同一对象的其他函数的内部调用函数?

调用与另一个方法同名的对象的方法

如何从另一个具有主函数的python模块调用单个方法

从同一对象的不同实例中触发另一个实例的函数

在 jQuery 中的同一对象上调用另一个函数中定义的函数

调用另一个对象中的函数

JS:传递一个包含函数/方法属性的对象,然后在另一个文件中传递和调用传入的对象函数/方法属性?

从另一个文件调用 Python 函数并使用该函数的 DF

在同一个类的另一个方法中调用一个类的方法的对象