【问题标题】:calling a method inside a class from a different file从不同的文件调用类内部的方法
【发布时间】:2022-11-23 11:12:42
【问题描述】:

我正在尝试在我的应用程序代码中实现 python 类和对象。目前,我有一个包含所有常用功能的文件。我将它们导入另一个文件。

函数.py

class name1():

     def func1(x):

         return x

     def func2(y):

         return y

....

文件1.py

from funcs import func1
from funcs import func2

我想在类、方法和属性中组织代码,然后在不同的文件中调用它们。

如何从另一个文件调用类中的方法?我需要在funcs.py 文件中做哪些更改?

【问题讨论】:

  • 你的问题对我来说没有意义——您提供的示例中没有类.无论如何,你调用一个方法和你平时做的一样,在该类的一个实例上。所以,假设你有一个list类的实例,mylist = list(range(10)),现在你想调用它的一个方法,所以你可以做mylist.append(99)。这总是完全一样的
  • @juanpa.arrivillaga 我用课程更新了帖子。
  • 那不是正确的类定义。无论如何,您不理解调用方法的哪一部分?我并不是刻薄,但听起来您希望我们从头开始向您解释类定义是如何工作的。
  • 比如,您不能只将函数定义放在类定义中。好吧,你可以,但如果你这样做,你还不如删除类定义并坚持使用函数。
  • @juanpa.arrivillaga 类,对象对我来说有点新。所以,我想全神贯注。我的文件中只有函数定义,需要实现一个类结构。

标签: python class oop methods


【解决方案1】:

如果要调用类中的方法,首先必须实例化该类的对象,然后调用引用该对象的方法。下面不是一个理想的实现,但它只是一个例子。
例子.py

class MyClass:
    def my_method(self):
        print('something')

object1 = MyClass()
object1.my_method()

然后当你想在另一个文件中调用该方法时,你必须先导入它们。
另一个.py

from .example import MyClass

object2 = MyClass()
object2.my_method()

如果您只想调用该方法而不必先创建对象,则可以使用@staticmethod

class MyClass:
    @staticmethod
    def my_method(self):
        print('something')

MyClass.my_method()

然而,正如我所说,这不是理想的实施方式。正如 @juanpa.arrivillaga 所说,理想情况下,您不能只抛出任何方法并将它们捆绑到一个类中。类的内容都是和你想定义为类的对象相关的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多