91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3.6簡單反射操作示例

發布時間:2020-10-16 14:40:25 來源:腳本之家 閱讀:141 作者:Tyran_U 欄目:開發技術

本文實例講述了Python3.6簡單反射操作。分享給大家供大家參考,具體如下:

# -*- coding:utf-8 -*-
#!python3
# -----------------------
# __Author : tyran
# __Date : 17-11-13
# -----------------------
class Base:
  def __init__(self):
    self.name = 'aaa'
    self.age = 18
  def show(self):
    print(self.age)
# 通過getattr()找到對象的成員
base = Base()
v = getattr(base, 'name')
print(v) # aaa
func1 = getattr(base, 'show')
func1() # 18
# 通過hasattr()查找成員是否存在
print(hasattr(base, 'name')) # True
print(hasattr(base, 'name1')) # False
# 通過setattr()給對象添加成員
setattr(base, 'k1', 'v1')
print(base.k1)
delattr(base, 'k1') # v1
# print(base.k1) 報錯AttributeError: 'Base' object has no attribute 'k1'
# -------------------------------------------------------------------------
# Class也是一個對象
class ClassBase:
  sex = 'male'
  def __init__(self):
    self.name = 'aaa'
    self.age = 11
  @staticmethod
  def show():
    print('I am static')
  @classmethod
  def c_method(cls):
    print(cls.sex)
sex_value = getattr(ClassBase, 'sex')
print(sex_value)
s_func = getattr(ClassBase, 'show')
s_func()
c_func = getattr(ClassBase, 'c_method')
c_func()
# 這些都沒問題
setattr(ClassBase, 'has_girlfriend', True) # 添加靜態成員
print(ClassBase.has_girlfriend) # True
# ---------------同理,模塊也是對象-------------
# 我新建了一個模塊s1.py,我把內容復制下來
# class S1:
#   def __init__(self):
#     self.name = 'aaa'
#     self.age = 22
#
#   def show(self):
#     print(self.name)
#     print(self.age)
#
#
# def func1():
#   print('page1')
#
#
# def func2():
#   print('page2')
# 一個類,兩函數
import s1
s1_class = getattr(s1, 'S1', None)
if s1_class is not None:
  c1 = s1_class()
  c1.show()
  # aaa
  # 22
getattr(s1, 'func1')() # page1
f2 = 'func2'
if hasattr(s1, f2):
  getattr(s1, 'func2')() # page2

注釋中說明的s1.py如下:

# -*- coding:utf-8 -*-
#!python3
class S1:
  def __init__(self):
    self.name = 'aaa'
    self.age = 22
  def show(self):
    print(self.name)
    print(self.age)
def func1():
  print('page1')
def func2():
  print('page2')
# 一個類,兩函數

程序運行結果:

Python3.6簡單反射操作示例

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长兴县| 黄浦区| 天峻县| 富蕴县| 汕头市| 长武县| 章丘市| 九龙坡区| 洪湖市| 桂林市| 安多县| 余姚市| 宜黄县| 五台县| 潢川县| 桂阳县| 彭泽县| 九江县| 乌拉特后旗| 疏勒县| 云浮市| 会昌县| 大姚县| 汝城县| 宁晋县| 当阳市| 威远县| 文成县| 安龙县| 新化县| 兴城市| 桑日县| 张家川| 彝良县| 吐鲁番市| 天台县| 宜城市| 瑞昌市| 凭祥市| 丹巴县| 察雅县|