Tại sao Python tĩnh không động?

Các ngôn ngữ được nhập động mà tôi biết không bao giờ cho phép các nhà phát triển chỉ định các loại biến hoặc ít nhất là có sự hỗ trợ rất hạn chế cho điều đó

Ví dụ: JavaScript không cung cấp bất kỳ cơ chế nào để thực thi các loại biến khi thuận tiện để làm như vậy. PHP cho phép bạn chỉ định một số loại đối số phương thức, nhưng không có cách nào để sử dụng các loại gốc [int, string, v.v. ] cho các đối số và không có cách nào để thực thi các loại cho bất kỳ thứ gì ngoài đối số

Đồng thời, sẽ thuận tiện hơn nếu có lựa chọn chỉ định trong một số trường hợp loại biến trong ngôn ngữ được nhập động, thay vì thực hiện kiểm tra loại thủ công

Tại sao lại có sự hạn chế như vậy?

Đây là một ví dụ để làm rõ. giả sử chúng ta có phương thức sau bằng PHP đơn giản

public function CreateProduct[$name, $description, $price, $quantity]
{
    // Check the arguments.
    if [!is_string[$name]] throw new Exception['The name argument is expected to be a string.'];
    if [!is_string[$description]] throw new Exception['The description argument is expected to be a string.'];
    if [!is_float[$price] || is_double[$price]] throw new Exception['The price argument is expected to be a float or a double.'];
    if [!is_int[$quantity]] throw new Exception['The quantity argument is expected to be an integer.'];

    if [!$name] throw new Exception['The name argument cannot be an empty string.'];
    if [$price  array['value' => $name, 'type' => VTYPE_STRING],
        'description' => array['value' => $description, 'type' => VTYPE_STRING],
        'price' => array['value' => $price, 'type' => VTYPE_FLOAT_OR_DOUBLE],
        'quantity' => array['value' => $quantity, 'type' => VTYPE_INT]
    ]];

    if [!$name] throw new Exception['The name argument cannot be an empty string.'];
    if [$price 

Chủ Đề