在另一个函数内部调用函数

时间:2019-07-29 15:18:48

标签: python

我正在创建此功能

def volumn(value_side):

    def side(value_side):
        side = value_side+2
        return (side)

    value_area = side(value_side)

    def area(value_area):
        area = value_area*4
        return(area)

    final_result = area(value_area)
    return(final_result)

我的问题是,如果我只想调用side函数

我尝试使用此代码volumn(3).side(3),但仍然出现错误int' object has no attribute 'side'

2 个答案:

答案 0 :(得分:2)

您可以返回内部函数sidearea以便在外部访问它们

def volumn():

    def side(value_side):
        side = value_side+2
        return side

    def area(value_area):
        area = value_area*4
        return(area)

    return side, area


side, area = volumn()
side_value = side(3)
print(side_value)
print(area(side_value))

或者您可以使用类来封装函数和属性

class Volumn:

    def __init__(self, value_side):
        self.value_side = value_side

    def side(self):
        side = self.value_side+2
        return side

    def area(self):
        area = self.side()*4
        return area

v = Volumn(3)
print(v.side())
print(v.area())

输出将为

5
20

答案 1 :(得分:1)

您可以在外部范围中定义这些函数以访问它们。

def side(value_side):
    side = value_side+2
    return (side)


def area(value_area):
    area = value_area*4
    return(area)


def volume(value_side):
    value_area = side(value_side)
    final_result = area(value_area)
    return final_result