反射

#!/usr/bin/env/python
#-*- coding:utf-8 -*-
#author: zhangliang

# 类中的反射
# class A:
#     Country1 = "China"
#     Country2 = "Japan"
#     def get_country(cls):
#         print(cls.Country1)
#         print(cls.Country2)
# inp = input("请输入国名>>> ")
# nnp = input("输入方法名>>> ")
# print(getattr(A, inp))
# print(hasattr(A, inp))
# hasattr总是与getattr联用
# if hasattr(A, inp):
#     print(getattr(A, inp))
# if hasattr(A, nnp):
#     print(getattr(A, nnp)(A))

# 对象中使用反射
# class Student:
#     def __init__(self, name):
#         self.name = name
#     def look(self):
#         print("瞎鸡巴看!")
#
# person = Student("jim")
# print(getattr(person, 'name'))
# getattr(person, "look")()

# 文件中的反射
import sys
# # 文件所在的内存空间
# print(sys.modules["__main__"])
# print(sys.modules["__main__"])

# 可以证明一下
# name = "alex"
# print(sys.modules[__name__].name)
# print(getattr(sys.modules[__name__], "name"))
# print([__name__]) #是一个内置变量 总是表示当前文件

# 反射本模块中的方法
# def login():
#     print("登录成功!")
# inp = input("请输入函数>> ")
# (getattr(sys.modules[__name__], inp)())

# 反射本模块中的类
# class Person:
#     a = "aabbcc"
#     pass
# class Student:
#     pass
# inp = input("请输入类名>> ")
# print(getattr(sys.modules[__name__], inp)())
# setattr
# setattr(Person, "a", "ccbbaa")
# print(Person.a)
# delattr
# delattr(Person, "a")

  

#!/usr/bin/env/python
#-*- coding:utf-8 -*-
#author: zhangliang

# 类中的反射
# class A:
# Country1 = "China"
# Country2 = "Japan"
# def get_country(cls):
# print(cls.Country1)
# print(cls.Country2)
# inp = input("请输入国名>>> ")
# nnp = input("输入方法名>>> ")
# print(getattr(A, inp))
# print(hasattr(A, inp))
# hasattr总是与getattr联用
# if hasattr(A, inp):
# print(getattr(A, inp))
# if hasattr(A, nnp):
# print(getattr(A, nnp)(A))

# 对象中使用反射
# class Student:
# def __init__(self, name):
# self.name = name
# def look(self):
# print("瞎鸡巴看!")
#
# person = Student("jim")
# print(getattr(person, 'name'))
# getattr(person, "look")()

# 文件中的反射
import sys
# # 文件所在的内存空间
# print(sys.modules["__main__"])
# print(sys.modules["__main__"])

# 可以证明一下
# name = "alex"
# print(sys.modules[__name__].name)
# print(getattr(sys.modules[__name__], "name"))
# print([__name__]) #是一个内置变量 总是表示当前文件

# 反射本模块中的方法
# def login():
# print("登录成功!")
# inp = input("请输入函数>> ")
# (getattr(sys.modules[__name__], inp)())

# 反射本模块中的类
# class Person:
# a = "aabbcc"
# pass
# class Student:
# pass
# inp = input("请输入类名>> ")
# print(getattr(sys.modules[__name__], inp)())
# setattr
# setattr(Person, "a", "ccbbaa")
# print(Person.a)
# delattr
# delattr(Person, "a")
posted on 2018-09-28 19:17  zl666张良  阅读(79)  评论(0)    收藏  举报