2011-08-23 32 views

Trả lời

12

from package import * nhập mọi thứ từ gói vào không gian tên cục bộ; điều này không được khuyến khích bởi vì nó có thể giới thiệu những thứ không mong muốn (như một hàm ghi đè lên một địa phương). Đây là một công cụ nhập nhanh và tiện dụng, nhưng nếu mọi thứ trở nên nghiêm trọng, bạn nên sử dụng cú pháp from package import X,Y,Z hoặc import package.

import package nhập mọi thứ từ gói vào đối tượng địa phương package. Vì vậy, nếu gói cài đặt chức năng something(), bạn sẽ sử dụng nó theo package.something().

Ngoài ra, một điều khác cần được nói đến là trường hợp không gian tên lồng nhau: giả sử bạn có chức năng package.blabla.woohoo.func(), bạn có thể import package.blabla.woohoo và sử dụng package.blabla.woohoo.func(), nhưng điều đó quá phức tạp. Thay vào đó, cách dễ dàng để thực hiện là from package.blabla import woohoo và sau đó sử dụng woohoo.func() hoặc from package.blabla.woohoo import func và sau đó sử dụng func(). Tôi hy vọng điều này có ý nghĩa. Nếu không, đây là một mảnh mã để minh họa:

import package.blabla.woohoo 
package.blabla.woohoo.func() 

from package.blabla import woohoo 
woohoo.func() 

from package.blabla.woohoo import func 
func() 

Hope this helps :)

3

Sự khác biệt là việc sử dụng một không gian tên cho gói.

from package import * 
class_in_package() 

vs

import package 
package.class_in_package() 
Các vấn đề liên quan