【问题标题】:Question on how to call a function defined in a class in python关于如何在python中调用类中定义的函数的问题
【发布时间】:2020-05-07 02:14:20
【问题描述】:

我正在尝试了解类和 self 的工作原理。我现在有以下代码,其中定义了一个类和函数。

from typing import Dict, Any


class LearnClasses:
    def checks(self) -> Dict[str, Any]:
        return {
            **self.chk1(),
            **self.chk2(),
            **self.chk3(),
        }

    def chk1(self) -> Dict[str, Any]:

        chk_id = self.chk1.__name__

        return {
            f'{chk_id}': "Is"
        }

    def chk2(self) -> Dict[str, Any]:

        chk_id = self.chk1.__name__

        return {
            f'{chk_id}': "it"
        }

    def chk3(self) -> Dict[str, Any]:

        chk_id = self.chk3.__name__

        return {
            f'{chk_id}': "working?"
        }

有人可以解释如何在LearnClass 中调用函数checks 吗?

我试过LearnClasses.checks(),但没用。

【问题讨论】:

    标签: python-3.x function class


    【解决方案1】:

    一般来说,要调用类中的普通方法,您需要创建该类的实例。然后调用实例上的方法:

    instance = LearnClasses()
    instance.checks()
    

    请注意,您现在拥有的代码没有多大意义。类的通常目的是将一些数据存储在对其进行操作的辅助方法中。您的 LearnClasses 类没有任何数据要存储或操作,所以它不是很有用。

    一个更具说明性的例子可能是:

    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def info(self):
            return f"{self.name} is {self.age} years old"
    

    您可以通过调用该类来创建实例,该类调用__init__ 方法来存储我们为该人提供的数据。 info 方法对该数据做了一些有用的事情,产生一个字符串:

    joe = Person("Joe", 39)
    print(joe.info())              # prints "Joe is 39 years old"
    

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多