要求:用指定的例項名呼叫函式先想當然地寫一下
cat vim my_exec.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
class personcomputer():
def __init__(self,name):
self.name = name
def say_hi(self):
print "hellow,this is {}!".format(self.name)
if __name__ == '__main__':
x1 = personcomputer('host1')
x2 = personcomputer('host2')
sys.ar**[1].say_hi()
本意是呼叫指令碼的時候帶上x1或者x2,這樣就能列印對應的host名字,結果報錯
$ python my_exec.py x1
traceback (most recent call last):
file "my_exec.py", line 18, in sys.ar**[1].say_hi()
attributeerror: 'str' object has no attribute 'say_hi'
這樣傳入的字元,當然不會被當成是例項了,也就無法呼叫類定義的函式。
這個時候exec()就要出馬了
$ cat my_exec.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
class personcomputer():
def __init__(self,name):
self.name = name
def say_hi(self):
print "hellow,this is {}!".format(self.name)
if __name__ == '__main__':
x1 = personcomputer('host1')
x2 = personcomputer('host2')
exec("{}.say_hi()".format(sys.ar**[1]))
執行一下
$ python my_exec.py x1
hellow,this is host1!
$ python my_exec.py x2
hellow,this is host2!
python函式不定參
寫函式時,預先可能不確定會傳入多少個引數,以及傳入的方式,這時候可以通過不定參的形式傳遞 def test args,kwargs print args args print kwargs kwargs if name main test 1,2,3,4,a 5,b 6,c 7 args 1,2,3...
python函式不定引數求和
想最快的入門python嗎?請搜尋 泉小朵 來學習python最快入門教程。也可以加入我們的python學習q群 902936549,送給每一位python的小夥伴教程資料。先來看python函式定引數求和 def dup1 m n l total 0 total m n l return tota...
python3 函式 不定長引數 不定參
第一種不定長引數 args args 稱為不定長引數,只能放在形參的最後位置,返回的是乙個元組 def num a,b,args print a print b print args num 11,22 返回結果 1122 33,55會放在元組args中 num 11,22,33,55 返回結果 1...