zoukankan      html  css  js  c++  java
  • Python--反射

    反射是一个很重要的概念,它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用、修改等操作。它有四个重要的方法:

    1、getattr 获取指定字符串名称的对象属性

    2、setattr 为对象设置一个对象

    3、hasattr 判断对象是否有对应的对象(字符串)

    4、delattr 删除指定属性

     1 # -*- coding:utf-8 -*-
     2 def talk(self): # 定义一个函数
     3     print("%s is talking..." % self.name)
     4 class Dog(object): # 定义一个类
     5     def __init__(self,name): 
     6         self.name = name
     7 
     8     def eat(self): #定义一个eat的函数
     9         print("%s is eating..." % self.name)
    10         
    11 d = Dog("ssddda") # 实例化
    12 choice = input("请随意输入>>>:") # 用户输入
    13 print(hasattr(d, choice)) #判断一个对象obj里是否有对应的name_str字符串的方法
    14 print(getattr(d,choice)) #根据字符串去获取obj对象里的对应的方法的内存地址
    15 func = getattr(d,choice)
    16 func()
    17 if hasattr(d,choice):
    18     '''choice为函数时'''
    19     func = getattr(d,choice)
    20     '''choice为变量时'''
    21     # attr = getattr(d,choice)
    22     # print(attr)
    23     '''删除属性或方法'''
    24     delattr(d,choice)
    25     x = getattr(d,choice)
    26     print(d)
    27 else:
    28     setattr(d,choice,talk) # setattr(x,'y',z) 等价于 设置 x.y = z
    29     func = getattr(d,choice)
    30     func(d)
    31     # setattr(d,choice,20)
    32     # attr = getattr(d,choice)
    33     # print(attr)
  • 相关阅读:
    AdaBoost算法学习
    梯度下降与随机梯度下降
    Logistic Regression学习
    PCA算法
    VS2013常见错误排查
    K临近算法
    遗传算法小结
    SLIC超像素(superpixel)算法
    openslide api函数概要
    线程钩子
  • 原文地址:https://www.cnblogs.com/sunnytomorrow/p/13435921.html
Copyright © 2011-2022 走看看