$target='uploads/'.basename($_FILES['UploadFileName']['name']);
if(move_uploaded_file($_FILES['UploadFileName']['tmp_name'],$target)) {
//Insert into your db
$fp = fopen($target, "r");
}
Вы можете использовать ** kwargs
, чтобы позволить вашим функциям принимать произвольное количество аргументов ключевого слова («kwargs» означает «аргументы ключевого слова»):
>>> def print_keyword_args(**kwargs):
... # kwargs is a dict of the keyword args passed to the function
... for key, value in kwargs.iteritems():
... print "%s = %s" % (key, value)
...
>>> print_keyword_args(first_name="John", last_name="Doe")
first_name = John
last_name = Doe
Вы также можете используйте синтаксис ** kwargs
при вызове функций путем создания словаря аргументов ключевого слова и передачи его вашей функции:
>>> kwargs = {'first_name': 'Bobby', 'last_name': 'Smith'}
>>> print_keyword_args(**kwargs)
first_name = Bobby
last_name = Smith
Учебник Python содержит хорошее объяснение того, как это работает, вместе с некоторыми хорошими примерами.
<--Update-->
Для людей, использующих Python 3, вместо iteritems () используйте items ()
kwargs - это просто словарь, который добавлены к параметрам.
Словарь может содержать пары ключ-значение. А это кварги. Хорошо, вот как.
Зачем не все так просто.
Например (очень гипотетически) у вас есть интерфейс, который просто вызывает другие подпрограммы для выполнения работы:
def myDo(what, where, why):
if what == 'swim':
doSwim(where, why)
elif what == 'walk':
doWalk(where, why)
...
Теперь у вас есть новый метод " drive ":
elif what == 'drive':
doDrive(where, why, vehicle)
Но постойте, появился новый параметр" транспортное средство "- вы не знали его раньше. Теперь вы должны добавить его в подпись myDo-функции.
**
распаковка словарей.
Это
func(a=1, b=2, c=3)
то же самое, что
args = {'a': 1, 'b': 2, 'c':3}
func(**args)
Это полезно, если вам нужно построить параметры:
args = {'name': person.name}
if hasattr(person, "address"):
args["address"] = person.address
func(**args) # either expanded to func(name=person.name) or
# func(name=person.name, address=person.address)
def setstyle(**styles):
for key, value in styles.iteritems(): # styles is a regular dictionary
setattr(someobject, key, value)
Это позволяет использовать функцию следующим образом:
setstyle(color="red", bold=False)
kwargs - это синтаксический сахар для передачи аргументов имени в качестве словарей (для func) или словарей в качестве именованных аргументов (для func)