反射:通過字串的形式匯入模組。通過字串的形式去模組中找到指定函式並執行
i = input('請輸入模組名:')
cc = __import__(i) # __import__可以通過輸入的字串來匯入模組;等同於import com as cc
print(cc.f1())
#!/usr/bin/env python3
# -*- encoding:utf-8 -*-
# getattr可以在指定模組中以字串形式找函式名
i = input('請輸入模組名:')
cc = __import__(i) # 通過輸入的字串來匯入模組
de = input('請輸入函式名:')
ff = getattr(cc, de) # 在匯入的模組中輸入指定的函式名做成新函式物件
print(ff()) # 執行反射過來的函式
ff = getattr(cc, de, none) # 如果模組中不存在輸入的函式,可以指定預設值,返回none
ret1 = hasattr(cc, 'f3') # 指定模組中以字串形式判斷某物件是否存在
print(ret1)
setattr(cc, 'ha', 'he') # setattr可以為指定模組在記憶體中新增乙個物件,也可以新增lambda函式物件
ret2 = hasattr(cc, 'ha')
print(ret2)
delattr(cc, 'name') # delattr在記憶體中刪除模組的某個物件
ret1 = hasattr(cc, 'name')
print(ret1)
cc = __import__('lib.test.com', fromlist=true) # 通過fromlist引數可以遞迴的往目錄裡找模組
類的反射特點
類,只能找類裡的成員
class foo:
def __init__(self, name):
self.name = name
def show(self):
print('show')
obj = foo('liujun')
print(hasattr(foo, 'show')) # true
物件,即可以找物件,也可以找類裡面成員
class foo:
def __init__(self, name):
self.name = name
def show(self):
print('show')
# obj = foo('liujun')
# print(hasattr(foo, 'show')) # true
# print(hasattr(foo, 'name')) # false
obj = foo('liujun')
print(hasattr(obj, 'name')) # true
print(hasattr(obj, 'show')) # true
python3基礎知識一
數字型別包括 int float bool complex 複數 還支援複數,複數的實部a和虛部b都是浮點型。數值計算 string 字串 eg print str 輸出字串 print str 0 1 輸出第乙個到倒數第二個的所有字元,下標前閉後開 print str 2 輸出從第三個開始的後的所...
Python3 基礎知識總結
基礎部分如運算 字串格式化 多行注釋 author xyhu 單行注釋 加減乘 1 1 2 8 1 7 10 2 20 除法自動轉換成浮點數 35 5 7.0 5 3 1.6666666666666667 整數除法的結果都是向下取整 5 3 1 5.0 3.0 1.0 浮點數也可以 5 3 2 5....
python3基礎知識點
使用一門語言,對於她的基礎知識點需要明確 現在我來整理一下,你可以作為閒來無事的東西看看,查漏補缺 int float bool complex 使用type a 或者 isinstance a,int 判斷 下標從0開始,以 1結尾 擷取方法 b 5 擷取前五個 加號連線字串,乘號進行重複 下標從...