Hướng dẫn how do you call methods in python? - làm thế nào để bạn gọi các phương thức trong python?

Tôi đang vượt quá trọng lượng của mình ở đây, nhưng hãy chịu đựng sự nghiệp dư Python này. Tôi là nhà phát triển PHP bằng giao dịch và tôi hầu như không chạm vào ngôn ngữ này trước đây.

Những gì tôi đang cố gắng làm là gọi một phương thức trong một lớp ... nghe có vẻ đủ đơn giản? Tôi hoàn toàn bối rối về những gì 'tự' đề cập đến và quy trình chính xác để gọi một phương thức như vậy bên trong một lớp và bên ngoài một lớp là gì.

Ai đó có thể giải thích cho tôi, cách gọi phương thức move với biến RIGHT. Tôi đã thử nghiên cứu điều này trên một số trang web 'học Python' và tìm kiếm trên StackoverFlow, nhưng không có kết quả. Bất kỳ trợ giúp sẽ được đánh giá cao.

Lớp sau đây hoạt động trong tập lệnh Python của Scott được truy cập bởi GUI Terminal [URWID].

Chức năng mà tôi đang làm việc là một trình khởi chạy tên lửa của Scott Weston Python Script, mà tôi đang cố gắng móc vào máy chủ web PHP.

class MissileDevice:
  INITA     = [85, 83, 66, 67,  0,  0,  4,  0]
  INITB     = [85, 83, 66, 67,  0, 64,  2,  0]
  CMDFILL   = [ 8,  8,
                0,  0,  0,  0,  0,  0,  0,  0,
                0,  0,  0,  0,  0,  0,  0,  0,
                0,  0,  0,  0,  0,  0,  0,  0,
                0,  0,  0,  0,  0,  0,  0,  0,
                0,  0,  0,  0,  0,  0,  0,  0,
                0,  0,  0,  0,  0,  0,  0,  0,
                0,  0,  0,  0,  0,  0,  0,  0]
  STOP      = [ 0,  0,  0,  0,  0,  0]
  LEFT      = [ 0,  1,  0,  0,  0,  0]
  RIGHT     = [ 0,  0,  1,  0,  0,  0]
  UP        = [ 0,  0,  0,  1,  0,  0]
  DOWN      = [ 0,  0,  0,  0,  1,  0]
  LEFTUP    = [ 0,  1,  0,  1,  0,  0]
  RIGHTUP   = [ 0,  0,  1,  1,  0,  0]
  LEFTDOWN  = [ 0,  1,  0,  0,  1,  0]
  RIGHTDOWN = [ 0,  0,  1,  0,  1,  0]
  FIRE      = [ 0,  0,  0,  0,  0,  1]

  def __init__[self, battery]:
    try:
      self.dev=UsbDevice[0x1130, 0x0202, battery]
      self.dev.open[]
      self.dev.handle.reset[]
    except NoMissilesError, e:
      raise NoMissilesError[]

  def move[self, direction]:
    self.dev.handle.controlMsg[0x21, 0x09, self.INITA, 0x02, 0x01]
    self.dev.handle.controlMsg[0x21, 0x09, self.INITB, 0x02, 0x01]
    self.dev.handle.controlMsg[0x21, 0x09, direction+self.CMDFILL, 0x02, 0x01]

Chức năng trong Python là gì?

Một chức năng trong Python là một đoạn mã chạy khi nó được tham chiếu. Nó được sử dụng để sử dụng mã ở nhiều nơi trong một chương trình. Nó cũng được gọi là phương pháp hoặc thủ tục. Python cung cấp nhiều hàm sẵn có như print [], input [], compile [], exec [], v.v. nhưng nó cũng cho phép tự do tạo các chức năng của riêng bạn.Function in Python is a piece of code which runs when it is referenced. It is used to utilize the code in more than one place in a program. It is also called method or procedure. Python provides many inbuilt functions like print[], input[], compile[], exec[], etc. but it also gives freedom to create your own functions.

Chức năng trong Python được xác định bởi câu lệnh của Def def, theo sau là tên hàm và dấu ngoặc đơn [[]] “def ” statement followed by the function name and parentheses [ [] ]

Example:

Hãy để chúng tôi xác định một hàm bằng cách sử dụng lệnh Lệnh def func1 []: và gọi chức năng. Đầu ra của chức năng sẽ là tôi đang học chức năng Python.“I am learning Python function”.

Hàm in func1 [] gọi def func1 [] của chúng tôi: và in lệnh. Tôi đang học chức năng Python không có chức năng.print func1[] calls our def func1[]: and print the command ” I am learning Python function None.

Có tập hợp các quy tắc trong Python để xác định một hàm.

  • Bất kỳ tham số args hoặc đầu vào nào cũng phải được đặt trong các dấu ngoặc đơn này
  • Câu lệnh First First có thể là một câu lệnh tùy chọn- DocString hoặc chuỗi tài liệu của hàm
  • Mã trong mọi chức năng bắt đầu bằng một dấu hai chấm [:] và nên được thụt vào [không gian]
  • Trả về câu lệnh [biểu thức] thoát ra một hàm, tùy chọn chuyển lại giá trị cho người gọi. Một câu lệnh trả về không có args giống như trả về không.

Ý nghĩa của thụt lề [không gian] trong Python

Trước khi chúng ta làm quen với các hàm Python, điều quan trọng là chúng ta phải hiểu quy tắc thụt vào để khai báo các hàm Python và các quy tắc này có thể áp dụng cho các yếu tố khác của Python cũng như khai báo các điều kiện, vòng lặp hoặc biến.

Python tuân theo một kiểu thụt cụ thể để xác định mã, vì các hàm Python don don có bất kỳ bắt đầu rõ ràng hoặc kết thúc như niềng răng xoăn để chỉ ra sự khởi đầu và dừng lại cho chức năng, chúng phải dựa vào thụt này. Ở đây chúng tôi lấy một ví dụ đơn giản với lệnh in Print. Khi chúng tôi viết chức năng in bản in ngay bên dưới def func 1 []: nó sẽ hiển thị một lỗi thụt lề của người dùng: dự kiến ​​một khối thụt lề.Python functions don’t have any explicit begin or end like curly braces to indicate the start and stop for the function, they have to rely on this indentation. Here we take a simple example with “print” command. When we write “print” function right below the def func 1 []: It will show an “indentation error: expected an indented block“.

Bây giờ, khi bạn thêm thụt lề [không gian] ở phía trước chức năng in của in, nó nên in như mong đợi.

Ít nhất, một thụt lề là đủ để làm cho mã của bạn hoạt động thành công. Nhưng như một thực tiễn tốt nhất, nên để lại khoảng 3-4 thụt vào để gọi chức năng của bạn..

Điều cũng cần thiết là trong khi khai báo thụt, bạn phải duy trì cùng thụt vào phần còn lại của mã. Ví dụ, trong ảnh chụp màn hình bên dưới khi chúng tôi gọi một câu lệnh khác, vẫn còn trong func1 và khi nó không được khai báo ngay bên dưới câu lệnh in đầu tiên, nó sẽ hiển thị lỗi thụt lề, không bị ảnh hưởng không phù hợp với bất kỳ cấp độ thụt nào khác.maintain the same indent for the rest of your code. For example, in below screen shot when we call another statement “still in func1” and when it is not declared right below the first print statement it will show an indentation error “unindent does not match any other indentation level.”

Bây giờ, khi chúng tôi áp dụng cùng một thụt lề cho cả hai câu lệnh và căn chỉnh chúng theo cùng một dòng, nó sẽ cho đầu ra dự kiến.

Giá trị trả về hàm như thế nào?

Lệnh trả về trong Python chỉ định giá trị nào để trả lại cho người gọi của hàm. Hãy để hiểu điều này với ví dụ sau

Bước 1] Hàm không trả về bất cứ điều gì

Ở đây - chúng ta thấy khi chức năng không phải là trả về. Ví dụ: chúng tôi muốn hình vuông 4 và nó sẽ đưa ra câu trả lời 16 16 khi mã được thực thi. Mà nó cung cấp khi chúng tôi chỉ cần sử dụng mã in in x*x, nhưng khi bạn gọi chức năng, in print square, nó sẽ cung cấp cho không có gì là đầu ra. Điều này là do khi bạn gọi hàm, đệ quy không xảy ra và rơi ra khỏi cuối hàm. Python trả về không có ai vì không thành công khi kết thúc chức năng.

Bước 2] Thay thế lệnh in bằng lệnh gán

Để làm cho điều này rõ ràng hơn, chúng tôi thay thế lệnh in bằng lệnh gán. Hãy để kiểm tra đầu ra.

Khi bạn chạy lệnh in print in hình vuông [4], nó thực sự trả về giá trị của đối tượng vì chúng tôi không có chức năng cụ thể nào để chạy qua đây, nó sẽ trả về không.

Bước 3] Sử dụng chức năng ‘Trả về và thực thi mã

Bây giờ, ở đây chúng ta sẽ xem cách lấy lại đầu ra bằng cách sử dụng lệnh của Return Return. Khi bạn sử dụng chức năng trả về trên mạng và thực thi mã, nó sẽ cung cấp cho đầu ra 16.

Bước 4] Chạy lệnh ‘in hình vuông

Các chức năng trong Python là một đối tượng và một đối tượng có một số giá trị. Ở đây chúng ta sẽ thấy Python đối xử với một đối tượng như thế nào. Khi bạn chạy lệnh in print in hình vuông, nó sẽ trả về giá trị của đối tượng. Vì chúng tôi chưa thông qua bất kỳ đối số nào, chúng tôi không có chức năng cụ thể nào để chạy ở đây, nó trả về giá trị mặc định [0x021b2d30] là vị trí của đối tượng. Trong chương trình Python thực tế, có lẽ bạn đã thắng được bao giờ để làm điều này.In practical Python program, you probably won’t ever need to do this.

Đối số trong các chức năng

Đối số là một giá trị được truyền cho hàm khi nó được gọi.

Nói cách khác, ở phía gọi, nó là một đối số và ở phía chức năng, nó là một tham số.

Hãy xem Python Args hoạt động như thế nào -

Bước 1] Các đối số được khai báo trong định nghĩa hàm. Trong khi gọi hàm, bạn có thể chuyển các giá trị cho ARG đó như được hiển thị bên dưới Arguments are declared in the function definition. While calling the function, you can pass the values for that args as shown below

Bước 2] Để khai báo giá trị mặc định của đối số, hãy gán nó một giá trị theo định nghĩa chức năng. To declare a default value of an argument, assign it a value at function definition.

Ví dụ: X không có giá trị mặc định. Giá trị mặc định của y = 0. Khi chúng tôi chỉ cung cấp một đối số trong khi gọi chức năng nhân, Python gán giá trị được cung cấp cho X trong khi giữ giá trị của y = 0. Do đó nhân của x*y = 0 x has no default values. Default values of y=0. When we supply only one argument while calling multiply function, Python assigns the supplied value to x while keeping the value of y=0. Hence the multiply of x*y=0

Bước 3] Lần này chúng tôi sẽ thay đổi giá trị thành y = 2 thay vì giá trị mặc định y = 0 và nó sẽ trả về đầu ra là [4 × 2] = 8.This time we will change the value to y=2 instead of the default value y=0, and it will return the output as [4×2]=8.

Bước 4] Bạn cũng có thể thay đổi thứ tự trong đó các đối số có thể được thông qua trong Python. Ở đây chúng tôi đã đảo ngược thứ tự của giá trị x và y thành x = 4 và y = 2.You can also change the order in which the arguments can be passed in Python. Here we have reversed the order of the value x and y to x=4 and y=2.

Bước 5] Nhiều đối số cũng có thể được truyền dưới dạng một mảng. Ở đây trong ví dụ, chúng tôi gọi nhiều arg [1,2,3,4,5] bằng cách gọi hàm [*args]. Multiple Arguments can also be passed as an array. Here in the example we call the multiple args [1,2,3,4,5] by calling the [*args] function.

Ví dụ: Chúng tôi đã tuyên bố nhiều ARG là số [1,2,3,4,5] khi chúng tôi gọi hàm [*args]; Nó in ra đầu ra là [1,2,3,4,5] We declared multiple args as number [1,2,3,4,5] when we call the [*args] function; it prints out the output as [1,2,3,4,5]

Tips::

  • Trong Python 2.7. Quá tải chức năng không được hỗ trợ trong Python. Quá tải chức năng là khả năng tạo nhiều phương thức cùng tên với một triển khai khác. Quá tải chức năng được hỗ trợ đầy đủ trong Python 3function overloading is not supported in Python. Function Overloading is the ability to create multiple methods of the same name with a different implementation. Function Overloading is fully supported in Python 3
  • Có một sự nhầm lẫn giữa các phương thức và chức năng. Các phương thức trong Python được liên kết với các trường hợp đối tượng trong khi chức năng thì không. Khi Python gọi một phương thức, nó liên kết tham số đầu tiên của cuộc gọi đó với tham chiếu đối tượng thích hợp. Nói một cách đơn giản, một hàm độc lập trong Python là một hàm của người Hồi giáo, trong khi một hàm là thuộc tính của một lớp hoặc một thể hiện là một phương thức của Hồi giáo.

Đây là mã Python 3 hoàn chỉnh

#define a function
def func1[]:
   print ["I am learning Python function"]
   print ["still in func1"]
   
func1[]

def square[x]:
  	return x*x
print[square[4]]

def multiply[x,y=0]:
	print["value of x=",x]
	print["value of y=",y]
    
	return x*y
  
print[multiply[y=2,x=4]]

Đây là mã Python 2 hoàn chỉnh

#define a function
def func1[]:
   print " I am learning Python function"
   print " still in func1"
   
func1[]

def square[x]:
  	return x*x
print square[4]

def multiply[x,y=0]:
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply[y=2,x=4]

Summary:

Chức năng trong Python là một đoạn mã có thể tái sử dụng được sử dụng để thực hiện hành động đơn lẻ, liên quan. Trong bài viết này, chúng ta sẽ thấy

  • Chức năng được xác định bởi câu lệnh defdef statement
  • Khối mã trong mọi hàm bắt đầu bằng dấu hai chấm [:] và nên được thụt vào [không gian]
  • Bất kỳ đối số hoặc tham số đầu vào nên được đặt trong các dấu ngoặc đơn này, v.v.
  • Ít nhất một thụt lề phải được để lại trước mã sau khi khai báo chức năng
  • Cùng kiểu thụt phải được duy trì trong toàn bộ mã trong hàm def
  • Đối với thực tiễn tốt nhất, ba hoặc bốn phần được coi là tốt nhất trước khi tuyên bố
  • Bạn có thể sử dụng lệnh return return để trả về các giá trị cho cuộc gọi chức năng.
  • Python sẽ in một giá trị ngẫu nhiên như [0x021b2d30] khi đối số không được cung cấp cho hàm gọi. Ví dụ về chức năng in.
  • Về phía gọi, nó là một đối số và ở phía chức năng, nó là một tham số
  • Giá trị mặc định trong đối số - Khi chúng tôi chỉ cung cấp một đối số trong khi gọi hàm nhân hoặc bất kỳ hàm nào khác, Python chỉ định đối số khác theo mặc định
  • Python cũng cho phép bạn đảo ngược thứ tự của đối số

Làm thế nào để bạn gọi một phương thức lớp trong Python?

Sử dụng self.f [] để gọi một phương thức lớp bên trong __init__ trong định nghĩa phương thức của __init __ [tự], hãy gọi tự. f [] trong đó f là tên của phương thức lớp. f[] to call a class method inside of __init__ Within the method definition of __init__[self] , call self. f[] where f is the name of the class method.

Làm thế nào để bạn gọi một phương thức từ một chuỗi trong Python?

Sử dụng getAttr [] để gọi một phương thức lớp theo tên của nó dưới dạng cuộc gọi chuỗi getAttr [đối tượng, tên] bằng cách sử dụng tên phương thức trong biểu mẫu chuỗi dưới dạng tên và lớp của nó là đối tượng.Gán kết quả cho một biến và sử dụng nó để gọi phương thức với một thể hiện của lớp làm đối số. Call getattr[object, name] using a method name in string form as name and its class as object . Assign the result to a variable, and use it to call the method with an instance of the class as an argument.

Phương thức __ gọi __ là gì?

Phương thức __call__ cho phép các lập trình viên Python viết các lớp trong đó các trường hợp hoạt động như các hàm và có thể được gọi giống như một hàm.Khi thể hiện được gọi là một hàm;Nếu phương pháp này được xác định, x [arg1, arg2, ...] là tốc ký cho x.__call __ [arg1, arg2, ...].enables Python programmers to write classes where the instances behave like functions and can be called like a function. When the instance is called as a function; if this method is defined, x[arg1, arg2, ...] is a shorthand for x. __call__[arg1, arg2, ...] .

Làm thế nào để bạn gọi một chức năng?

Bạn gọi hàm bằng cách nhập tên của nó và đặt một giá trị trong ngoặc đơn.Giá trị này được gửi đến tham số của hàm.ví dụ.Chúng tôi gọi hàm FirstFunction [chuỗi như nó được hiển thị.typing its name and putting a value in parentheses. This value is sent to the function's parameter. e.g. We call the function firstFunction[“string as it's shown.”];

Bài Viết Liên Quan

Chủ Đề