我无法使用oop概念运行我的python程序

问题描述 投票:0回答:1

谁能告诉我为什么我的这个程序只运行操作_执行内容下的内容而不是之后的内容?

import math
class Shape:
  def operation_perform(self):
    m = input('''
      Select the shape:
      1. Select 1 for area.
      2. Select 2 for perimeter.
      ''')
    
    if m == '1':   
      def area(self, a, b = 0):
        n = input('''
        select the shape:
        1. Select 1 for circle.
        2. Select 2 for square.
        3. Select 3 for rectangular.
        ''')

        if n == '1':
          print('area of circle: ', math.pi * self.a**2)
        
        if n == '2':
          print('area of square: ', self.a**2)

        if n == '3':
          print('area of rectangular: ', math.pi * self.a * self.b)

    elif m == '2':
      def perimeter(self, a, b = 0):
        n = input('''
          select the shape:
          1. Select 1 for circle.
          2. Select 2 for square.
          3. Select 3 for rectangular.
          ''')

        if n == '1':
          print('perimeter of circle: ', 2 * math.pi * self.a)
          
        if n == '2':
          print('perimeter of square: ', 4 * self.a)

        if n == '3':
          print('perimeter of rectangular: ', 2*(self.a + self.b))
    else:
        exit()

s = Shape() 

s.operation_performed()

我得到的输出如下所示:

output: 
      Select the shape:
      1. Select 1 for area.
      2. Select 2 for perimeter.
      1  

为什么我的程序没有进入area()或perimeter()函数。如果不使用构造函数我不能这样做吗?

python oop
1个回答
0
投票

您正在创建

area
perimeter
函数,但从未调用它们。

© www.soinside.com 2019 - 2024. All rights reserved.