最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3.6簡(jiǎn)單反射操作示例

 更新時(shí)間:2018年06月14日 10:52:36   作者:Tyran_U  
這篇文章主要介紹了Python3.6簡(jiǎn)單反射操作,結(jié)合實(shí)例形式分析了Python3反射的概念、原理、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下

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

# -*- 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)
# 通過(guò)getattr()找到對(duì)象的成員
base = Base()
v = getattr(base, 'name')
print(v) # aaa
func1 = getattr(base, 'show')
func1() # 18
# 通過(guò)hasattr()查找成員是否存在
print(hasattr(base, 'name')) # True
print(hasattr(base, 'name1')) # False
# 通過(guò)setattr()給對(duì)象添加成員
setattr(base, 'k1', 'v1')
print(base.k1)
delattr(base, 'k1') # v1
# print(base.k1) 報(bào)錯(cuò)AttributeError: 'Base' object has no attribute 'k1'
# -------------------------------------------------------------------------
# Class也是一個(gè)對(duì)象
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()
# 這些都沒(méi)問(wèn)題
setattr(ClassBase, 'has_girlfriend', True) # 添加靜態(tài)成員
print(ClassBase.has_girlfriend) # True
# ---------------同理,模塊也是對(duì)象-------------
# 我新建了一個(gè)模塊s1.py,我把內(nèi)容復(fù)制下來(lái)
# 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')
# 一個(gè)類,兩函數(shù)
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

注釋中說(shuō)明的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')
# 一個(gè)類,兩函數(shù)

程序運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門(mén)與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

黄浦区| 安康市| 满城县| 曲沃县| 南汇区| 迁西县| 黄浦区| 历史| 濉溪县| 乾安县| 米脂县| 凌云县| 武隆县| 邹城市| 岳池县| 洪江市| 平定县| 绿春县| 五河县| 古蔺县| 富锦市| 德令哈市| 成都市| 顺平县| 双峰县| 克拉玛依市| 乌兰浩特市| 阿坝| 鄢陵县| 乃东县| 正蓝旗| 石门县| 礼泉县| 怀柔区| 普宁市| 西吉县| 石家庄市| 宁津县| 马公市| 延庆县| 新沂市|