Hướng dẫn how do you define something in python 3? - làm thế nào để bạn xác định một cái gì đó trong python 3?


Một chức năng là một khối của mã có tổ chức, có thể tái sử dụng được sử dụng để thực hiện một hành động duy nhất, liên quan. Các chức năng cung cấp mô -đun tốt hơn cho ứng dụng của bạn và mức độ tái sử dụng mã cao.

Như bạn đã biết, Python cung cấp cho bạn nhiều hàm tích hợp như in (), v.v. nhưng bạn cũng có thể tạo các chức năng của riêng mình. Các chức năng này được gọi là các chức năng do người dùng xác định.

Xác định một chức năng

Bạn có thể xác định các chức năng để cung cấp các chức năng cần thiết. Dưới đây là các quy tắc đơn giản để xác định một chức năng trong Python.

  • Các khối chức năng bắt đầu với từ khóa def theo sau là tên hàm và dấu ngoặc đơn (()).def followed by the function name and parentheses ( ( ) ).

  • Bất kỳ tham số đầu vào hoặc đối số nên được đặt trong các dấu ngoặc đơn này. Bạn cũng có thể xác định các tham số bên trong các dấu ngoặc đơn này.

  • Câu lệnh đầu tiên của một hàm có thể là một câu lệnh tùy chọn - chuỗi tài liệu của hàm hoặc tài liệu.

  • Khối mã trong mọi chức năng bắt đầu bằng một dấu hai chấm (:) và được thụt vào.

  • Câu lệnh trả về [Biểu thức] thoát ra một hàm, tùy chọn chuyển lại một biểu thức cho người gọi. Một câu lệnh trả về không có đối số giống như trả về không.

Cú pháp

def functionname( parameters ):
   "function_docstring"
   function_suite
   return [expression]

Theo mặc định, các tham số có hành vi vị trí và bạn cần thông báo cho chúng theo cùng thứ tự mà chúng được xác định.

Thí dụ

Hàm sau đây lấy một chuỗi làm tham số đầu vào và in nó trên màn hình tiêu chuẩn.

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

Gọi một chức năng

Xác định một hàm cho nó một tên, chỉ định các tham số được bao gồm trong hàm và cấu trúc các khối mã.

Khi cấu trúc cơ bản của hàm được hoàn thiện, bạn có thể thực hiện nó bằng cách gọi nó từ một hàm khác hoặc trực tiếp từ dấu nhắc Python. Sau đây là một ví dụ để gọi hàm printme () -printme() function −

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

This is first call to the user defined function!
Again second call to the same function

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

#!/usr/bin/python3

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   print ("Values inside the function before change: ", mylist)
   
   mylist[2]=50
   print ("Values inside the function after change: ", mylist)
   return

# Now you can call changeme function
mylist = [10,20,30]
changeme( mylist )
print ("Values outside the function: ", mylist)

Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng được truyền và nối thêm các giá trị trong cùng một đối tượng. Do đó, điều này sẽ tạo ra kết quả sau -

Values inside the function before change:  [10, 20, 30]
Values inside the function after change:  [10, 20, 50]
Values outside the function:  [10, 20, 50]

Có một ví dụ nữa trong đó đối số được truyền bằng tham chiếu và tham chiếu đang được ghi đè bên trong hàm được gọi.

#!/usr/bin/python3

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist = [1,2,3,4] # This would assi new reference in mylist
   print ("Values inside the function: ", mylist)
   return

# Now you can call changeme function
mylist = [10,20,30]
changeme( mylist )
print ("Values outside the function: ", mylist)

Tham số mylist là cục bộ với chức năng thay đổi. Thay đổi Mylist trong hàm không ảnh hưởng đến Mylist. Chức năng không hoàn thành không có gì và cuối cùng điều này sẽ tạo ra kết quả sau -mylist is local to the function changeme. Changing mylist within the function does not affect mylist. The function accomplishes nothing and finally this would produce the following result −

Values inside the function:  [1, 2, 3, 4]
Values outside the function:  [10, 20, 30]

Đối số chức năng

Bạn có thể gọi một hàm bằng cách sử dụng các loại đối số chính thức sau -

  • Lập luận bắt buộc
  • Từ khóa đối số
  • Đối số mặc định
  • Đối số có độ dài thay đổi

Lập luận bắt buộc

Các đối số bắt buộc là các đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Ở đây, số lượng đối số trong cuộc gọi hàm sẽ khớp chính xác với định nghĩa hàm.

Để gọi hàm printme (), bạn chắc chắn cần phải chuyển một đối số, nếu không nó sẽ gây ra lỗi cú pháp như sau -printme(), you definitely need to pass one argument, otherwise it gives a syntax error as follows −

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme()

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

Traceback (most recent call last):
   File "test.py", line 11, in 
      printme();
TypeError: printme() takes exactly 1 argument (0 given)

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng được truyền và nối thêm các giá trị trong cùng một đối tượng. Do đó, điều này sẽ tạo ra kết quả sau -printme() function in the following ways −

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
0

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
1

Vượt qua bởi tham chiếu vs giá trị

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
2

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
3

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
4

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
5

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng được truyền và nối thêm các giá trị trong cùng một đối tượng. Do đó, điều này sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
6

Có một ví dụ nữa trong đó đối số được truyền bằng tham chiếu và tham chiếu đang được ghi đè bên trong hàm được gọi.

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
7

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
8

Các chức năng ẩn danh

Các chức năng này được gọi là ẩn danh vì chúng không được khai báo theo cách tiêu chuẩn bằng cách sử dụng từ khóa DEF. Bạn có thể sử dụng từ khóa Lambda để tạo các hàm ẩn danh nhỏ.def keyword. You can use the lambda keyword to create small anonymous functions.

  • Các biểu mẫu Lambda có thể lấy bất kỳ số lượng đối số nào nhưng chỉ trả về một giá trị dưới dạng biểu thức. Chúng không thể chứa các lệnh hoặc nhiều biểu thức.

  • Một hàm ẩn danh không thể là một cuộc gọi trực tiếp để in vì Lambda yêu cầu biểu thức.

  • Các hàm Lambda có không gian tên cục bộ riêng và không thể truy cập các biến khác với các biến trong danh sách tham số của họ và các biến trong không gian tên toàn cầu.

  • Mặc dù có vẻ như Lambdas là phiên bản một dòng của một hàm, nhưng chúng không tương đương với các câu lệnh nội tuyến trong C hoặc C ++, có mục đích là xếp chồng phân bổ bằng cách chuyển chức năng, trong quá trình gọi vì lý do hiệu suất.

Cú pháp

Cú pháp của các hàm Lambda chỉ chứa một câu lệnh, như sau -lambda functions contains only a single statement, which is as follows −

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
9

Sau đây là một ví dụ để hiển thị cách dạng chức năng Lambda hoạt động -lambda form of function works −

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
0

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
1

Tuyên bố trả lại

Câu lệnh trả về [Biểu thức] thoát ra một hàm, tùy chọn chuyển lại một biểu thức cho người gọi. Một câu lệnh trả về không có đối số giống như trả về không.

Tất cả các ví dụ được đưa ra dưới đây không trả lại bất kỳ giá trị nào. Bạn có thể trả về một giá trị từ một hàm như sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
2

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
3

Phạm vi của các biến

Tất cả các biến trong một chương trình có thể không thể truy cập được tại tất cả các vị trí trong chương trình đó. Điều này phụ thuộc vào nơi bạn đã tuyên bố một biến.

Phạm vi của một biến xác định phần của chương trình nơi bạn có thể truy cập một định danh cụ thể. Có hai phạm vi cơ bản của các biến trong Python -

  • Biến toàn cầu
  • Các biến cục bộ

Các biến toàn cầu so với địa phương

Các biến được xác định bên trong một cơ thể chức năng có phạm vi cục bộ và những biến được xác định bên ngoài có phạm vi toàn cầu.

Điều này có nghĩa là các biến cục bộ chỉ có thể được truy cập bên trong hàm mà chúng được khai báo, trong khi các biến toàn cầu có thể được truy cập trên toàn bộ cơ thể chương trình bởi tất cả các chức năng. Khi bạn gọi một hàm, các biến được khai báo bên trong nó được đưa vào phạm vi. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
4

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
5

Làm thế nào để bạn xác định một cái gì đó trong Python?

Bốn bước để xác định một hàm trong Python là như sau: Sử dụng từ khóa def để khai báo chức năng và theo dõi tên này với tên chức năng.Thêm tham số vào hàm: Chúng nên nằm trong dấu ngoặc đơn của hàm.Kết thúc dòng của bạn bằng một dấu hai chấm.Use the keyword def to declare the function and follow this up with the function name. Add parameters to the function: they should be within the parentheses of the function. End your line with a colon.

Làm thế nào để bạn xác định tên trong Python 3?

Dưới đây là các quy tắc đơn giản để xác định một chức năng trong Python.Các khối chức năng bắt đầu với từ khóa def theo sau là tên hàm và dấu ngoặc đơn (()).Bất kỳ tham số đầu vào hoặc đối số nên được đặt trong các dấu ngoặc đơn này.Bạn cũng có thể xác định các tham số bên trong các dấu ngoặc đơn này.Function blocks begin with the keyword def followed by the function name and parentheses ( ( ) ). Any input parameters or arguments should be placed within these parentheses. You can also define parameters inside these parentheses.

Làm thế nào để bạn xác định một lớp học trong Python 3?

Chúng tôi xác định các lớp bằng cách sử dụng từ khóa lớp, tương tự như cách chúng tôi xác định các chức năng bằng cách sử dụng từ khóa DEF.by using the class keyword, similar to how we define functions by using the def keyword.

Làm thế nào để bạn xác định một chức năng?

Một định nghĩa kỹ thuật của một hàm là: Một mối quan hệ từ một tập hợp các đầu vào đến một tập hợp các đầu ra có thể trong đó mỗi đầu vào có liên quan đến chính xác một đầu ra.a relation from a set of inputs to a set of possible outputs where each input is related to exactly one output.