day07 упражнения Python3

«» « 
? 1, порядок выполнения новых методов и метода инициализации выполняется 

A: Первое внедрение новых методов, открыть память, создавать объекты, а затем выполнить инициализации 
» «» 
# класс Человека (): 
#      DEF __init __ (Self, имя, возраст) : 
#          self.name = имя 
#          self.age Age = 
#          Print ( "Я метод инициализации.") 
# 
#      DEF __new __ (CLS, * арг, ** kwargs): 
#          Print ( "Я новый метод") 
#          возвращение объекта .__ новый новый __ (CLS) 
# 
# P = Человек ( "Лили", 18) 
# P2 = Человек ( "Люси", 20) 
# Печать (ID (P), ID (P2)) 

'' ' 
2, Call метод вызывается в какое время? 

A:Когда объект () вызывается , когда 
«» ' 
#класс Человек (): 
#      DEF __init __ (Self): 
#          Print ( "Я метод инициализации.") 
# 
#      DEF __call __ (Self): 
#          Print ( "Я называю метод") 
# 
# Р- = Человек () 
# р- () 

«» « » 
3, Пожалуйста , напишите класс, добавить статический атрибут для класса с отражением 
«» ' 
# класс Человека (): 
#      Pass 
# 
# SetAttr (лицо, „Возраст“, 30) 
# Печать ( person.age) 

«» « 
4, добавьте имя атрибута для объекта на название класса отражения, ваше имя 
» «» 
# класс Человек ():
#      Передача 
# 
# р = Person () 
#SetAttr (Человек, "Возраст", 30) 
# SetAttr (P, "имя", "Сяо Yanyan") 
# Печать (person.age) 
# Печать (p.name) 

'' ' 
. 5, используя новый метод для достижения одноточечно 
'' ' 
# класс одноэлементный (): 
#      __instance = None цель # хранение 
# 
#      DEF метод __init __ (Self): 
#          (. "Я инициализировать метод") Печать 
# 
#      DEF __new __ (CLS * арг, ** kwargs): 
#          Если не Singleton .__ примера: # не определить , является ли None 
#              Singleton экземпляра = Object .__ .__ нового нового __ (ЦБС) # создать объекты и переменный класс обновления 
#          возврата Singleton.__instance 
# 
# s = Синглтон ()
# S1 = одноплодный () 
# Печать (ID (S), ID (S1)) 

'' ' 
6, проверка согласованности два файлов. 
' '' 
# Импорта hashlib 
# 
# DEF get_file_md5 (File): 
#      "" " возвращает содержимое файла из строки "" после того, как зашифрованный md5 " 
#      OBJ = hashlib.md5 () 
#      obj.update (Open (файл) .read (). закодировать (" UTF - 8 . «)) 
#      возвращение obj.hexdigest () 
# 
# IF get_file_md5 ( "file1.py") == get_file_md5 ( "file2.py"): 
#      Print ( " в соответствии с содержанием двух файлов") 
# еще: 
#      "содержимое двух файлов , не совместимы" Print ( ) 

'' '
7, шифртекст соль Войти 
'' ' 
# Import hashlib 
#
# Имя пользователя = "" 
# пароль = "" 
# 
# класс Auth (): 
#      __salt = "Кто сделал дюйм травы, сообщили в квартирах." Соль строка # 
# 
#      DEF get_md5_str (Self, str1): 
#          "" "md5 шифрование" "" 
#          md5_obj = hashlib.md5 (Self .__ salt.encode ( "UTF - 8 . ")) 
#          md5_obj.update (str1.encode ( "UTF - 8 . ")) 
#          возвращение md5_obj.hexdigest () 
# 
#      DEF Регистр (Self): 
#          "" "Регистрация пользователя" "" 
#          это время 1: 
#              имя = в поле ВХОД ( «Регистр имя пользователя:«) .strip () 
#             в поле ВХОД = PWD ( "Регистр Пароль:") .strip () 
#              Если имя = "" и PWD =! "!": 
#                  , Ltd. Бесплатный Регистрация логин, пароль 
#                  имя = имя 
#                  пароль = self.get_md5_str (PWD) 
#                  Print ( " [% s] успешно зарегистрирован "% имя пользователя) 
#                  возвращающие 
#              еще: 
#                  Print (" имя пользователя и пароль не может быть пустым "). 
# 
#      DEF Логин (Self): 
#          " "" Логин пользователя "" " 
#          это время 1: 
#              имя = входе ( «поле Логин имя пользователя:«) .strip () 
#             Название == IF "": 
#                  (. Print "Имя пользователя не может быть пустым") 
#                  Продолжить 
#              PWD = на вход ( далее "Логин Пароль") .strip () 
#              IF PWD == "": 
#                  Print ( «Пароль не может опорожнить ") 
#                  Продолжить 
# 
#              Если имя пользователя == == имя self.get_md5_str и пароль (PWD): 
#                  Print (" [% S] успешно Войти "% имя). 
#                  возвращающие 
#              еще: 
#                  Print (" имя пользователя или пароль неверен ".) 
#                  Вернуться Ложные 
# 
# 
#AUTH = Auth () # создать объект 
# auth.register () # регистрация 
# auth.login () # вход 

«» « 
Настройка журнала 8, полный и может либо выводить на экран в выходной файл 
» «» 
Импорт протоколирования
 из протоколируемого Импорта обработчиков 

класса Logger (Object): 
    level_relations = {
         ' Debug ' : logging.DEBUG,
         ' информация ' : logging.info,
         ' предупреждение ' : logging.WARNING,
         ' ошибка ' : logging.error,
         ' крит ': Logging.CRITICAL 
    } # лог отображение уровня отношения 

    DEF  __init__ (Self, имя файла, уровень = ' Информация ' , Когда = ' D ' , backCount = 3. , 
                 FMT = ' % (при asctime) S -% (путь к файлу) S [Line: % (LINENO) D] -% (levelname) S:% (сообщение) S ' ): 
        self.logger = logging.getLogger (имя файла) 
        format_str = logging.Formatter (FMT)   # установить формат журнала 
        self.logger.setLevel (самообеспечение .level_relations.get (уровень))   # установить уровень журнала 
        SH = logging.StreamHandler ()   #Для вывода на экран 
        sh.setFormatter (format_str)    # формате на экране настройки 
        # к # файла , записанного в указанный промежуток времени автоматически генерируется процессором файл 
        й = handlers.TimedRotatingFileHandler (имя файла = имя файла, когда = когда backupCount = backCount кодирование = ' UTF - 8 . ' ) 
        th.setFormatter (format_str)   # форматирование записи файла 
        self.logger.addHandler (SH)   # к объекту на регистратор в 
        self.logger.addHandler (TH) 


еСЛИ  в __name__ == ' __main__ ' : 
    журнал = Logger ( ' all.log ' , уровень = ' Debug ' )
    log.logger.debug ( ' отладить ' ) 
    log.logger.info ( ' Информация ' ) 
    log.logger.warning ( ' 警告' ) 
    log.logger.error ( ' 报错' ) 
    log.logger.critical ( ' 严重' ) 
    Регистратор ( ' error.log ' , уровень = ' ошибки ' ) .logger.error ( ' ошибка ' )

 

рекомендация

отwww.cnblogs.com/lilyxiaoyy/p/10929114.html