python-3.x - 在单独的文件中定义 Python 类

标签 python-3.x oop instance-variables abstraction

# File 1
me = MongoEngine(app) # I want to use my instance of MongoEngine to define new classes like the example in File 2

# File 2
class Book(me.Document):
    title = StringField(null=False, unique=True)
    year_published = IntField(null=True)

在新文件中创建新类时,如何将实例 me.Document 作为对象定义传递。如果我将它们放在同一个文件中,它会起作用吗?

最佳答案

我认为选择为答案的答案并不完全正确。

File1.py 似乎是您执行的主要脚本File2.py 是一个模块,其中包含您希望在 File1.py

中使用的 class

同样基于 previous question of the OP我想建议以下结构:

File1.py 和 File2.py 位于同一个目录

File1.py

import MongoEngine
from File2 import Book

me = MongoEngine(app)

# according to the documentation
# you do need to pass args/values in the following line
my_book = Book(me.Document(*args, **values))
# then do something with my_book
# which is now an instance of the File2.py class Book

File2.py

import MongoEngine

class Book(MongoEngine.Document):

    def __init__(self, *args, **kwargs):
        super(Book, self).__init__(*args, **kwargs)
        # you can add additional code here if needed

    def my_additional_function(self):
        #do something
        return True

关于python-3.x - 在单独的文件中定义 Python 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48756404/

相关文章:

ruby - 局部变量、实例变量和类变量有什么区别?

python - 从函数返回 str 和 int

python - 访问类型为 Union 的变量的属性会引发错误

Python OOP问题,一个类的值没有被另一个类的函数更新

ios - 自定义 View 和属性 'v' 实例变量

ruby - 不同对象的实例变量都被改变

python - 为字典实现自定义键,以便同一类的 2 个实例匹配

python - 当我计算列表中连续元素之间的差异时,如何保持列表中的第一个元素不变?

Python 类方法链接

c++ - 创建对象作为私有(private)成员变量与在成员函数中