6
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi có một chức năng và tôi đang tạo một chức năng khác trong đó tôi cần gọi hàm đầu tiên. Tôi không có kinh nghiệm về Python, nhưng tôi biết rằng bằng các ngôn ngữ như Matlab, có thể miễn là chúng nằm trong cùng một thư mục.
Một ví dụ cơ bản:
def square[x]:
square = x * x
[và đã lưu]
Bây giờ trong chức năng mới của tôi, tôi muốn sử dụng hình vuông chức năng mà tôi đã thử:
def something [y, z]
import square
something = square[y] + square[z]
return something
Trong đó hiển thị: builtins.TypeError: 'module' object is not callable
.
Tôi nên làm gì?
Georgy
11K7 Huy hiệu vàng62 Huy hiệu bạc68 Huy hiệu Đồng7 gold badges62 silver badges68 bronze badges
Đã hỏi ngày 5 tháng 10 năm 2015 lúc 22:07Oct 5, 2015 at 22:07
2
Không cần import
nếu nó trong cùng một tệp.
Chỉ cần gọi square
từ hàm
def something [y, z]
import square
something = square[y] + square[z]
return something
0.def square[x]:
square = x * x
return square
def something [y, z]
something = square[y] + square[z]
return something
Đơn giản hơn:
def square[x]:
return x * x
def something [y, z]
return square[y] + square[z]
Đã trả lời ngày 5 tháng 10 năm 2015 lúc 22:21Oct 5, 2015 at 22:21
Ty Pavicichty PavicichTy Pavicich
1.0403 huy hiệu vàng9 Huy hiệu bạc22 Huy hiệu đồng3 gold badges9 silver badges22 bronze badges
Nếu, và chỉ khi, bạn có chức năng square
được xác định trong mô -đun square
, thì bạn nên tìm cách nhập tên đơn giản từ nó., and only if, you have the square
function defined in a square
module, then you should look to import the simple name from it instead.
from square import square
Nếu bạn không muốn thay đổi bất cứ điều gì, thì bạn cần sử dụng tên đủ điều kiện của nó:
something = square.square[y] + square.square[z]
Tên của mô -đun là square
và bạn không thể gọi các chức năng trên các mô -đun.
Đã trả lời ngày 5 tháng 10 năm 2015 lúc 22:09Oct 5, 2015 at 22:09
MakotomakotoMakoto
102K27 Huy hiệu vàng185 Huy hiệu bạc222 Huy hiệu đồng27 gold badges185 silver badges222 bronze badges
0
Bạn có một số tùy chọn.
Đặt mọi thứ trong một tập tin. Sau đó, bạn chỉ cần gọi chức năng khác; Quên về tất cả các
import
sau đó.Đặt hàm
square
trong một tệp khác, e. g.
6. Sau đó, bạn sử dụng chức năng cần phảidef something [y, z] import square something = square[y] + square[z] return something
import
. Vì vậy, bạn có hai tùy chọn một lần nữa:
8 và sử dụngdef something [y, z] import square something = square[y] + square[z] return something
9 hoặcdef something [y, z] import square something = square[y] + square[z] return something
0 và sử dụngdef square[x]: square = x * x return square def something [y, z] something = square[y] + square[z] return something
1. .def square[x]: square = x * x return square def something [y, z] something = square[y] + square[z] return something
Các mô -đun [i. E. Trong một tệp riêng biệt] được sử dụng để nhóm các thứ được kết nối logic lại với nhau, e. g. Tất cả các chức năng toán học, tất cả các thứ liên quan đến hệ điều hành, tất cả các thứ liên quan đến trình tạo số ngẫu nhiên, v.v. Vì vậy, trong trường hợp của bạn trông giống như một bài kiểm tra đầu tiên tôi đề xuất đặt mọi thứ vào một tệp và quên tất cả các ____.
Đã trả lời ngày 5 tháng 10 năm 2015 lúc 22:17Oct 5, 2015 at 22:17
AlfealfeAlfe
53.6K19 Huy hiệu vàng100 Huy hiệu bạc152 Huy hiệu đồng19 gold badges100 silver badges152 bronze badges
2 Cách sử dụng một hàm trong một chức năng khác:
- Bạn xác định hàm
4 trong tệpdef square[x]: square = x * x return square def something [y, z] something = square[y] + square[z] return something
5 khác [def square[x]: square = x * x return square def something [y, z] something = square[y] + square[z] return something
6] và sau đó, bạn có thể nhập chức năng theo cách này:def square[x]: square = x * x return square def something [y, z] something = square[y] + square[z] return something
from myfile import square
def newFunction[]:
square[]
- Bạn xác định chức năng trong cùng một tệp và sau đó không cần phải trực tiếp
import
và bạn có thể sử dụng trực tiếp
4.def square[x]: square = x * x return square def something [y, z] something = square[y] + square[z] return something
Đã trả lời ngày 5 tháng 10 năm 2015 lúc 22:18Oct 5, 2015 at 22:18
Farhawafarhawafarhawa
9.59116 Huy hiệu vàng46 Huy hiệu bạc91 Huy hiệu Đồng16 gold badges46 silver badges91 bronze badges