今天在用python3的getattr時遇到一個問題, 就是老提示傳入參數和函數前面不一致, 代碼為:
class Test:
??? def __init__(self, name):
???????? self.name = name
??? def execute(self, methodname, *args):
???????? print(args)
???????? print(self.name)
???????? print(getattr(self.name, methodname)(args))
經過調查發現, args在Python3中類似指針, 必須用*args才能傳遞整個參數, 要不然是第一個參數值。
解決方案:
? ?def execute(self, methodname, *args):
???????? print(args)
???????? print(self.name)
???????? print(getattr(self.name, methodname)(*args))
- 前言
- PythonPath在Windows 下的設置
- Sublime Text: [Decode error - output not utf-8]
- Python 寫文件時的Unicode設置
- python中文件打開的各個標識含義
- python 3中對list進行sort時,返回值為None
- python 3中使用getattr和*args時, 出現傳入參數不一致的問題
- import module, from module import funtion區別
- Python 中list, dictionary 與 file相互操作
- 編譯Python出現Tab,空格的問題
- Sublime Text2中Evernote 插件的使用
- python中全局變量的使用
- python中string和bool的轉換
- python中http的一些編碼轉換
- python中http請求中添加cookie支持
- python構造一個http請求
- python中如何定義main方法
- python為類定義構造函數
- python中print的幾種用法
- 自己寫的工具:把Evernote(印象筆記)的筆記導入到博客(Blog)中
- Python打包成exe
- python中lxml的應用