Python3之反射基礎知識

2021-08-15 08:05:05 字數 1970 閱讀 1216

反射:通過字串的形式匯入模組。通過字串的形式去模組中找到指定函式並執行

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 擷取前五個 加號連線字串,乘號進行重複 下標從...