Dmitry Telenkov 4 月之前
父節點
當前提交
c5d3ddb2c3
共有 2 個文件被更改,包括 47 次插入1 次删除
  1. 42 0
      courses/python_func/introspection.py
  2. 5 1
      courses/python_func/sort.py

+ 42 - 0
courses/python_func/introspection.py

@@ -0,0 +1,42 @@
+
+def get_info_about_object(obj):
+    print(dir(obj))
+    print(f'Всего у объекта {len(dir(obj))} атрибутов и методов')
+
+
+def check_exist_attrs(obj, lst):
+    'Возвращает словарь со статусом атрибутов из списка лист у obj'
+    return {x:hasattr(obj, x) for x in lst}
+
+
+def create_attrs(obj, lst):
+    for data in lst:
+        setattr(obj, data[0], data[1])
+
+
+
+def my_test_function():
+    pass
+
+
+def print_goods(lst):
+    pass
+
+
+
+def main():
+
+    # get_info_about_object(my_test_function)
+    # print(hasattr(my_test_function, '__code__'))
+
+    # print_goods.is_working = False
+    # print_goods.status = 'Not ready'
+
+    # print(check_exist_attrs(print_goods, ['is_working', 'status', 'time', 'speed']))
+
+    create_attrs(print_goods, [('is_working', False), ('days', 10), ('status', 'Not ready')])
+    print(check_exist_attrs(print_goods, ['sort', 'is_working', 'days', 'status', 'upper']))
+
+
+if __name__ == '__main__':
+    main()

+ 5 - 1
courses/python_func/sort.py

@@ -204,7 +204,11 @@ def main():
     ]
 
     
-    print_statistic(data)
+    # print_statistic(data)
+
+    print(set_test.__code__)
+    print(set_test.__code__.co_varnames)
+    print(set_test.__code__.co_argcount)