首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该在哪里定义我在__init__中使用的函数

我应该在哪里定义我在__init__中使用的函数
EN

Stack Overflow用户
提问于 2012-08-21 19:37:48
回答 4查看 8.8K关注 0票数 7

我正在编写一个在其__init__函数中使用某些函数的类,但我不确定在何处定义这些函数的最佳实践。我通常喜欢首先定义__init__,但如果我需要在__init__中使用a函数/方法,则需要首先定义它。我不想在类之外定义它,因为它在类外无用,但在__init__之前定义方法对我来说似乎很混乱。这方面的常规约定是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-21 19:41:33

只需像其他方法一样将这些方法添加到您的类中

代码语言:javascript
复制
class Test(object):
    def __init__(self):
        self.hi()

    def hi(self):
        print "Hi!"

一点问题都没有。

虽然在Python Style Guide IIRC中没有提到,但让__init__作为类中的第一个方法是惯例。

票数 14
EN

Stack Overflow用户

发布于 2012-08-21 19:49:21

通常的约定确实是将__init__放在其他方法之前。这样做的原因是函数只有在被调用时才会被计算。从Python docs

函数定义是一个可执行语句。它的执行将当前本地命名空间中的函数名称绑定到一个函数对象(函数的可执行代码的包装)。此函数对象包含对当前全局命名空间的引用,作为调用函数时要使用的全局命名空间。

函数定义不会执行函数体;只有在调用函数时才会执行。

票数 3
EN

Stack Overflow用户

发布于 2012-08-21 19:41:47

最好将__init__函数定义为第一个函数,并且可以在其中调用在__init__之后定义的函数。

代码语言:javascript
复制
class A:
    def __init__(self):
        print self.x()

    def x(self):
        return 10
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12053998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档