json
ограничено в терминах объектов, которые он может печатать, а jsonpickle
(возможно, вам нужен pip install jsonpickle
) ограничен в терминах, он не может отступать от текста. Если вы хотите проверить содержимое объекта, класс которого вы не можете изменить, я все равно не мог найти более строгий путь:
import json
import jsonpickle
...
print json.dumps(json.loads(jsonpickle.encode(object)), indent=2)
Обратите внимание, что они все еще не могут распечатать объект методы.
Это не намного лучше:
public function createShipment($startZip, $endZip, $weight=null){
$weight = !$weight ? $this->getDefaultWeight() : $weight;
}
// or...
public function createShipment($startZip, $endZip, $weight=null){
if ( !$weight )
$weight = $this->getDefaultWeight();
}
Аккуратный прием с булевой операцией ИЛИ:
public function createShipment($startZip, $endZip, $weight = 0){
$weight or $weight = $this->getDefaultWeight();
...
}
Это позволит вам пройти вес 0 и по-прежнему работать должным образом. Обратите внимание на оператор ===, он проверяет, соответствует ли вес «null» как по значению, так и по типу (в отличие от ==, который является просто значением, поэтому 0 == null == false).
PHP:
public function createShipment($startZip, $endZip, $weight=null){
if ($weight === null)
$weight = $this->getDefaultWeight();
}
Вы можете использовать статический член класса для хранения значения по умолчанию:
class Shipment
{
public static $DefaultWeight = '0';
public function createShipment($startZip,$endZip,$weight=Shipment::DefaultWeight) {
// your function
}
}