乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      python類相關(guān)的練習(xí)題_python關(guān)于類的練習(xí)題

       沒有開始 2023-10-10 發(fā)布于重慶

      1、寫一個矩形的類,那么這個類默認(rèn)有長和寬兩個參數(shù),當(dāng)傳入一個叫square的屬性時,值就等于邊長,由于是正方形那么長和寬就等于邊長。

      class Rectangle(object):
        
          # init object
          def __init__(self,width,height):
              self.width = width
              self.height = height
        
        
          def getacreage(self):
              return self.width * self.height
        
          def __setattr__(self,name,value):
              if name == 'square':
                  self.width = value
                  self.height = value
        
              else:
                  super().__setattr__(name,value)
      

      2、完成如下要求:

      • 定制一個計時器類

      • start和stop方法代表啟動和停止計時

      • 假設(shè)計時器對象t1,定制t1對象直接執(zhí)行和打印時的輸出信息

      • 當(dāng)計時器未啟動或已經(jīng)停止計時,調(diào)用stop方法會給予溫馨提示

      • 兩個計時器對象可以進(jìn)行相加: t1 + t2

      import time
        
      class Mytimer():
        
          # 初始化
          def __init__(self):
              self.prompt = 'Timer is not start'    # 提示信息
              self.start_time = None 
              self.stop_time = None
            
          # 啟動定時器
          def start(self):
              if self.start_time:
                  print('Please Use Stop() to stop Timer')   # 屬性存在,表示已經(jīng)啟動計時
              else:
                  self.start_time = time.time()
                  print('The start of Timer')
        
          # 關(guān)閉定時器
          def stop(self):
              if self.start_time:
                  self.stop_time = time.time()
                  print('The stop of Timer')
                  self._calc()
              else:
               print('Please Use Start() to start Timer')   # 沒有執(zhí)行start(),檢測不到屬性,進(jìn)行提示
        
          # 計算耗時
          def _calc(self):
              self.prompt = 'Total time : '
              self.end_time = self.stop_time - self.start_time
              self.prompt += str('{:.2f}'.format(self.end_time))
              self.start_time = None
              self.stop_time = None
        
          # 直接執(zhí)行對象時,打印提示信息
          def __repr__(self):
              return self.prompt
        
          # 打印對象和執(zhí)行對象相同
          __str__ = __repr__
        
          # 計時器相加
          def __add__(self,other):
              self.prompt = 'All Time : '
              add_time = self.end_time + other.end_time
              self.prompt += str('{:.2f}'.format(add_time))
              return self.prompt
      

      3、完成如下需求

      • 定義一個溫度類,然后定義兩個描述符類用于描述攝氏度和華氏度兩個屬性。
      • 兩個屬性會自定進(jìn)行轉(zhuǎn)換,也就是說可以給攝氏度這個屬性賦值,然后打印的華氏度屬性是自動轉(zhuǎn)換后的結(jié)果。
      class Celsius:
        
          def __init__(self,value = 37):
              self.value = value
        
          def __set__(self,instance,value):
              self.value = value
        
          def __get__(self,instance,owner):
              return self.value
        
        
      class Fahrenheit:
        
          def __set__(self,instance,value):
               instance.cel = (float(value) - 32 )  / 1.8
                 
          def __get__(self,instance,owner):
              return instance.cel * 1.8  + 32   # 通過instance實例訪問,實例化后對象的cel屬性
        
      class Temperature:
          cel = Celsius()
          fah = Fahrenheit()
        
      #Python小白學(xué)習(xí)交流群:725638078      
      >>> a = Temperature()
      >>> a.cel
      37
      >>> a.fah
      98.60000000000001
      >>> a.fah = 100
      >>> a.cel
      37.77777777777778
      >>>
      

      由于instance表示的是實例化的對象本身(a),所以這里使用instance,指代a,來訪問設(shè)置的cel屬性,來進(jìn)行換算。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多