Хорошо возвращать несколько значений с помощью кортежа для простых функций такой как divmod
. Если это делает код читаемым, это - Pythonic.
, Если возвращаемое значение начинает становиться сбивающим с толку, проверьте, делает ли функция слишком много и разделила его, если это. Если большой кортеж используется как объект, сделайте его объектом. Кроме того, рассмотрите использование именованные кортежи , который будет частью стандартной библиотеки в Python 2.6.
Вы должны каким-то образом выставить их «внешнему миру». В настоящее время они видны только в my_function
, поэтому вы не сможете вызывать их из другого места.
Самый наивный способ исправить это будет примерно так:
Похоже, вы пытаетесь создать плагин jQuery. Вы должны ограничить методы вашего плагина частной областью, http://www.learningjquery.com/2007/10/a-plugin-development-pattern
http://docs.jquery.com/Plugins/Authoring
Однако, если вы делаете просто некоторые «служебные» функции, вы можете просто связать их с пространством имен jQuery следующим образом:
$.foo = function(){
// do stuff
};
$.bar = function(){
// do stuff
};
HTML
<p id="hello">aaa</p>
<p id="hola">sss</p>
<div id='result'></div>
JS
$.fn.my_function = function()
{
this.foo = function(xref) {
$("#result").append("<div>"+xref+".foo " + $(this).html() +"</div>");
};
this.bar = function(xref) {
$("#result").append("<div>"+xref+".bar " + $(this).html() +"</div>");
};
return this;
};
var ee1 = $("#hello").my_function();
var ee2 = $("#hola").my_function();
ee1.bar("ee1");
ee2.bar("ee2");
$("#hello").html("hello hellboy");
ee1.foo("ee1");
ee2.foo("ee2");
$("#result").append("<hr />");
ee1.bar("ee1");
ee2.bar("ee2");
$("#hola").html("hola hellboy");
ee1.foo("ee1");
ee2.foo("ee2");