鱼C论坛

 找回密码
 立即注册
查看: 2309|回复: 4

[已解决]定义class,里面的def函数太多了,能不能把def函数拆分到其他文件中去?

[复制链接]
发表于 2021-5-28 10:00:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家好,我定义了GUI的class

然后自己写了一些def函数

然后我发现为了维护各种各样的想法,我在这个class中定义的def越来越多

这样让定义这个class的文件行数慢慢变多了

有没有什么办法,可以把class中的def拆到另外一个文件中去?
(然后在主class这个文件中调用)

麻烦大家帮忙,谢谢了!
最佳答案
2021-5-28 12:04:41
本帖最后由 hrp 于 2021-5-28 12:07 编辑
python初学者021 发表于 2021-5-28 10:59
大概怎么弄啊?我一下没有明白


比如你的主文件是a.py,现在你将函数func拆分到b.py中,那么b.py中就有一个函数def func(): return 0

如果你要在a.py中使用func,那你需要在a.py中写上from b import func,使用时直接调用: x = func();或者import b,使用时 x = b.func()。这样做一般要求func有独立的功能,不对a有太过复杂的依赖。

例子AwesomePyKit
interface文件夹存放ui布局相关代码,library文件夹存放有独立功能的类或函数,RunPyKit.py是与ui操作相关的逻辑代码,也是程序的入口。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-28 10:22:11 From FishC Mobile | 显示全部楼层
可以,要使用的话从那个文件导入就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-28 10:59:19 | 显示全部楼层
hrp 发表于 2021-5-28 10:22
可以,要使用的话从那个文件导入就可以了

大概怎么弄啊?我一下没有明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 11:55:01 | 显示全部楼层
python初学者021 发表于 2021-5-28 10:59
大概怎么弄啊?我一下没有明白




拆分前

class X
    def a
    def b
    def c

拆分后:
main模块
from A import MixA
from B import MixB
from C import MixC
class X(MixA,MixB,MixC)
    pass
X().a()


A模块里
class MixA:
    def a

B模块里
class MixB:
    def b

C模块里
class MixC:
    def c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-28 12:04:41 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrp 于 2021-5-28 12:07 编辑
python初学者021 发表于 2021-5-28 10:59
大概怎么弄啊?我一下没有明白


比如你的主文件是a.py,现在你将函数func拆分到b.py中,那么b.py中就有一个函数def func(): return 0

如果你要在a.py中使用func,那你需要在a.py中写上from b import func,使用时直接调用: x = func();或者import b,使用时 x = b.func()。这样做一般要求func有独立的功能,不对a有太过复杂的依赖。

例子AwesomePyKit
interface文件夹存放ui布局相关代码,library文件夹存放有独立功能的类或函数,RunPyKit.py是与ui操作相关的逻辑代码,也是程序的入口。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 18:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表