愚公移山日記・3

11906 ワード

愚公移山日記・3
自己紹介
河南の1つの流れに入らない2本の学院、学校の大きい2生、専門は物流管理Pythonの自習の51日目です
学習の進度
Githubの上で学ぶ大きい人の分かち合うPython-100日初心者から大家まで今日学ぶのはDay 09対象に向かって进级して今日の学习の过程の中でとても骨が折れると感じて、ゼロの基础の独学なため、文章の中で指摘する类、property包装器、静态の动态の言语の区别、_slots__魔法は、自分で理解する過程で確かに難しい.もちろん今日の章にはいくつかのすごい例があります.ウルトラマンが怪獣を打つ、トランプゲーム、給料決済システムです.
れんがを投げて玉を引く
今日は最も簡単な問題をまとめましょう.ケース3:給料決済システム.説明:ある会社には3種類の従業員があります.それぞれ部門マネージャー、プログラマー、販売員です.給与決済システムを設計し、提供された従業員情報に基づいて月給を計算する必要があります.部門マネージャーの月給は毎月15000元固定されています.プログラマーの月給は今月の勤務時間によって150元計算されます.販売員の月給は1200元の基本給に売上高の5%の引き上げを加えたものだ.上のコード(コードに現れた関数をはっきり表示しました)
from abc import ABCMeta,abstractmethod
#  abc   ABCMeta   abstractmethod            
#                        (    )。
class Employee(object,metaclass = ABCMeta):
    def __init__(self,name):
        self._name = name
     @property
    #     - getter  
    def name(self):
        return self._name
    @abstractmethod
# Programmer,Manager salesman   get_salary                     
#   main                
    def get_salary(self):
        pass
class Manager(Employee):
    def get_salary(self):
        return 15000.0
class Programmer(Employee):
    def __init__(self,name,working_hour = 0):
        super().__init__(name)
#super()              ,    super(type[,object_or_type])  | tpye:  ,object-or-type: ,    self      
        self._working_hour = working_hour
    @property
#     - getter  
    def working_hour(self):
        return self._working_hour
     @working_hour.setter
    def working_hour(self,working_hour):
        self._working_hour = working_hour if working_hour > 0 else 0
    def get_salary(self):
        return 150.0 * self._working_hour
class Salesman(Employee):
    def __init__(self,name,sales = 0):
        super().__init__(name)
#super()              
        self._sales = sales
    @property
    def sales(self):
        return self._sales
    @sales.setter
#setter(   )  
    def sales(self,sales):
        self._sales = sales if sales > 0 else 0
    def get_salary(self):
        return 1200.0 + self._sales *0.5
def main():
    emps = [Manager('a'),Programmer('k'),Salesman('d')]
    for emp in emps:
        if isinstance(emp,Programmer):
#isinstance()                    ,   type()。  type()            ,       
#isinstance()   : isinstance(object,classinfo)  object :    ,classinfo          ,                         
            emp.working_hour = int(input('   %s      :'%emp.name))
        elif isinstance (emp,Salesman):
            emp.sales = float(input('   %s     :'%emp.name))
        print('%s     :¥%s ' %(emp.name,emp.get_salary()))
if __name__ =='__main__':
    main()                

***
Pythonの直面する対象の进级は今日もただ初歩的な理解だけで、类の理解に対してまだ向上しなければならなくて、独学の过程の中でもし困难に出会うならばと言わざるを得なくて、実はとても困难に倒されやすくて、あなたがこのものに対して超浓厚な兴味がある限り、あるいはあなたは超强い自制能力があって、それでは私は独学の时に困难な解决方法に出会うことを言いましょう、第一に、あきらめずに、第二に、それにかかわるもっと简単なものを探して勉强し、まず勉强という自信を养い、第三に、一回りしてから戻ってくると问题が解决するかもしれないが、そうでなければ、戦略的な移転を行い、次の内容の勉强を行う.さて、今日はここまでです.もちろん、私が書いたブログの中には少し不適切なところがあります.