python 通过字符串调用对象属性或方法的实例讲解
有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象属性或方法
1、eval
In [634]: def getmethod(x,char='just for test'): ...: return eval('str.%s' % x)(char) ...:
In [635]: getmethod('upper') Out[635]: 'JUST FOR TEST'
2、getattr
In [650]: def getmethod2(x, char='just for test'): ...: return getattr(char, x)() ...:
In [651]: getmethod2('upper') Out[651]: 'JUST FOR TEST'
3、利用内置库operator
In [648]: def getmethod3(x, char='just for test'): ...: return operator.methodcaller(x, char)(str) ...:
In [649]: getmethod3('upper') Out[649]: 'JUST FOR TEST'
以上这篇python 通过字符串调用对象属性或方法的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python中的对象,方法,类,实例,函数用法分析
本文实例分析了Python中的对象,方法,类,实例,函数用法.分享给大家供大家参考.具体分析如下: Python是一个完全面向对象的语言.不仅实例是对象,类,函数,方法也都是对象. 复制代码 代码如下: class Foo(object): static_attr = True def method(self): pass foo = Foo() 这段代码实际上创造了两个对象,Foo和foo.而Foo同时又是一个类,foo是这个类的实例. 在C++里类型定义是在编
-
Python面向对象实现一个对象调用另一个对象操作示例
本文实例讲述了Python面向对象实现一个对象调用另一个对象操作.分享给大家供大家参考,具体如下: 我先总结一下python中的类的特点: 1.类中所有的方法的参数中都必须加self,并且是第一个参数 2.__init__方法用来初始化对象,也必须加self 3.用__str__方法,方法中有返回值,可以直接用print(对象引用的变量),__str__方法返回什么,print得到的就是什么 4.属性的赋值,最好用方法封装起来使用 __str__和__init__方法的举例: # -*- cod
-
Python对象的深拷贝和浅拷贝详解
本文内容是在<Python核心编程2>上看到的,感觉很有用便写出来,给大家参考参考! 浅拷贝 首先我们使用两种方式来拷贝对象,一种是切片,另外一种是工厂方法.然后使用id函数来看看它们的标示符 复制代码 代码如下: # encoding=UTF-8 obj = ['name',['age',18]] a=obj[:] b=list(obj) for x in obj,a,b: print id(x) 35217032 35227912 29943304 他们的id都不同,按照正
-
Python中动态获取对象的属性和方法的教程
首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding: UTF-8 import sys # 模块,sys指向这个模块对象 import inspect def foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__(self, name='kitty'): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.
-
Python面向对象程序设计之私有属性及私有方法示例
本文实例讲述了Python面向对象程序设计之私有属性及私有方法.分享给大家供大家参考,具体如下: 如果有一个对象,当需要对其进行修改属性时,有2种方法: (1)对象名.属性名=数据---->直接修改 (2)对象名.方法名()----->间接修改 为了更好的保障属性安全,不能随意修改,一般处理方式为: (1)将属性定义为私有属性 (2)添加一个可以调用的方法,供调用,也就是间接调用属性 首先我讲解下私有属性的例子: 1.下面这个是一个错误的例子: class People(object): de
-
判断python对象是否可调用的三种方式及其区别详解
查找资料,基本上判断python对象是否为可调用的函数,有三种方法 使用内置的callable函数 callable(func) 用于检查对象是否可调用,返回True也可能调用失败,但是返回False一定不可调用. 官方文档:https://docs.python.org/3/library/functions.html?highlight=callable#callable 判断对象类型是否是FunctionType type(func) is FunctionType # 或者 isinst
-
Python面向对象程序设计多继承和多态用法示例
本文实例讲述了Python面向对象程序设计多继承和多态用法.分享给大家供大家参考,具体如下: 多继承 就是一个子类继承多个父类: 多继承的例子,如下: # -*- coding:utf-8 -*- #! python3 class Base(object): def test(self): print("------base") class A(Base): def test1(self): print("-----test1") class B(Base): de
-
Python检测一个对象是否为字符串类的方法
目的 测试一个对象是否是字符串 方法 Python的字符串的基类是basestring,包括了str和unicode类型.一般可以采用以下方法: 复制代码 代码如下: def isAString(anobj): return isinstance(anobj,basestring) 不过以上方法对于UserString类的实例,无能无力. 复制代码 代码如下: In [30]: b=UserString.UserString('abc') In [31]: isAString(b) Out[31
-
Python中获取对象信息的方法
当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <type 'int'> >>> type('str') <type 'str'> >>> type(None) <type 'NoneType'> 如果一个变量指向函数或者类,也可以用type()判断: >&
-
python进阶教程之函数对象(函数也是对象)
秉承着一切皆对象的理念,我们再次回头来看函数(function).函数也是一个对象,具有属性(可以使用dir()查询).作为对象,它还可以赋值给其它对象名,或者作为参数传递. lambda函数 在展开之前,我们先提一下lambda函数.可以利用lambda函数的语法,定义函数.lambda例子如下: 复制代码 代码如下: func = lambda x,y: x + y print func(3,4) lambda生成一个函数对象.该函数参数为x,y,返回值为x+y.函数对象赋给func.fun
随机推荐
- jsp编程去除空白行的方法
- Erlang IO编程之文件目录操作常用方法小结
- 在Vista中隐藏开始菜单中的使用记录
- 深入解析Java接口(interface)的使用
- javascript检测页面是否缩放的小例子
- 在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
- 又一个php 分页类实现代码
- 简单解析MySQL中的cardinality异常
- php 不能连接数据库 php error Can't connect to local MySQL server
- java实现日历(某年的日历,某月的日历)用户完全自定义
- preg_match_all使用心得分享
- C#微信开发之获取接口调用凭据
- Android学习笔记之应用单元测试实例分析
- python在TXT文件中按照某一字符串取出该字符串所在的行方法
- Docker如何多步构建生成dubbo-admin镜像详解
- php解决crontab定时任务不能写入文件问题的方法分析
- python 请求服务器的实现代码(http请求和https请求)
- Java实现的校验银行卡功能示例
- JavaScript实现选项卡效果的分析及步骤
- python脚本实现mp4中的音频提取并保存在原目录