Dapatkah saya memanggil metode statis dengan self python?

Metode statis Python atau @staticmethod dapat memanggil tanpa membuat instance atau objek. Meskipun metode statis milik kelas, Anda dapat memanggilnya langsung dengan namanya. Jika Anda menginginkan fungsi yang tidak memerlukan variabel kelas atau variabel instan apa pun untuk beroperasi, Anda dapat membuatnya sebagai metode statis

Misalnya, jika Anda ingin mencetak pesan selamat datang, Anda dapat membuatnya sebagai metode statis karena tidak akan berubah. Atau tidak perlu variabel kelas apa pun untuk menampilkan pesan itu. Kita dapat membuat metode statis di Python dengan menggunakan dekorator @staticmethod atau fungsi staticmethod(). Meskipun kami tidak merekomendasikan opsi kedua, kami menunjukkan kemungkinan pemahaman Anda

Pada bagian ini, kami menjelaskan cara membuat metode statis dalam bahasa pemrograman Python dan memanggil metode statis. Di sebagian besar contoh, kami menggabungkan metode statis dengan metode non-statis. Pada awalnya, ini mungkin membingungkan Anda, tetapi ini memungkinkan Anda membedakan antara statis dan non-statis

Contoh metode statis python

Anda dapat menulis metode statis dan non-statis dengan satu kelas. Biarkan saya membuat func_message() nonstatik dan satu metode statis func_msg() menggunakan dekorator @staticmethod

TIP. Lihat artikel Fungsi dan kelas untuk membuat kelas Python untuk metode statis

class Employee:
     
    def func_message(self):
        print('Welcome to Programming')
 
    @staticmethod
    def func_msg():
        print("Welcome to Tutorial Gateway")

Untuk menampilkan sesuatu dari kelas, Anda perlu membuat objek atau instance dari kelas tersebut

Memanggil @staticmethod dengan Python

Contoh ini menunjukkan cara memanggil metode statis atau @staticmethod dan non-staticmethod. Seperti yang kami katakan sebelumnya, kami tidak perlu membuat instance untuk memanggil metode statis

Jika Anda melihat contohnya, Employee. func_msg() artinya nama kelas. staicmethod_name. Ini secara otomatis memanggil fungsi func_msg di kelas karyawan.

Selanjutnya, kami membuat instance kelas Karyawan untuk memanggil fungsi lain, yang merupakan fungsi non-statis

class Employee:
     
    def func_message(self):
        print('Welcome to Programming')
 

    @staticmethod
    def func_msg():
        print("Welcome to Tutorial Gateway")
 
Employee.func_msg()
 
emp = Employee()
emp.func_message()
Welcome to Tutorial Gateway
Welcome to Programming

Pendekatan @staticmethod 2

Dalam contoh ini, kita membuat metode statis Python menggunakan fungsi metode statis(). Di dalam kelas, pertama, kami membuat dua fungsi reguler . Selanjutnya, kami menggunakan pernyataan di bawah ini untuk mengonversi fungsi reguler menjadi metode statis.

Karyawan. func_addition = metode statis (Karyawan. fungsi_tambahan). Artinya nama_kelas. nama_metode = metode statis (nama_kelas. nama_metode)

class Employee:
     
    def func_message(self):
        print('Welcome to The World')
 
    def func_addition(a, b):
        return a + b
     
Employee.func_addition = staticmethod(Employee.func_addition)
print('Total = ', Employee.func_addition(25, 50))
 
emp = Employee()
emp.func_message()
Total =  75
Welcome to the World

Ini adalah contoh lain untuk membuat metode statis menggunakan fungsi metode statis (). Di sini, kami membuat dua func_addition() dan func_multiply()

class Employee:
     
    def func_message(self):
        print('Welcome to this World')
 
    def func_addition(a, b):
        return a + b
 
    def func_multiply(a, b):
        return a * b
 
emp = Employee()
emp.func_message()
 
Employee.func_addition = staticmethod(Employee.func_addition)
print('Total = ', Employee.func_addition(25, 50))
 
Employee.func_multiply = staticmethod(Employee.func_multiply)
print('Multiplication = ', Employee.func_multiply(25, 50))
Welcome to this World
Total =  75
Multiplication =  1250

Python @staticmethod dengan contoh Argumen

Di Python, Anda tidak harus menggunakan atribut self atau cls untuk membuat metode statis atau metode statis. Seperti fungsi, Anda dapat membuatnya dan menambahkan argumen sesuai kebutuhan Anda

Dalam contoh ini, kami membuat dua di antaranya. Fungsi func_msg() mencetak pesan selamat datang. Dan fungsi split_string (pesan) menerima string dan membagi string itu dengan pembatas koma. Saya sarankan Anda merujuk ke artikel pemisahan String

class Employee:
     
    def func_message(self):
        print('Welcome to Programming')
 
    @staticmethod
    def func_msg():
        print("Welcome to Tutorial Gateway")
 
    @staticmethod
    def split_string(message):
        return message.split(",")
 
Employee.func_msg()
 
countries = 'India, China, Japan, USA, UK, Australia, Canada'
 
print(Employee.split_string(countries))

Definisi Python @staticmethod dengan keluaran argumen

Welcome to Tutorial Gateway
['India', ' China', ' Japan', ' USA', ' UK', ' Australia', ' Canada']
_

Ini adalah contoh lain dari metode statis dengan argumen. Dalam contoh ini, kami menggunakan fungsi untuk membagi pesan menggunakan koma dan menggunakan fungsi ganti untuk mengganti koma dengan garis bawah. Saya sarankan Anda merujuk artikel ganti String

Bisakah metode Statis menggunakan diri sendiri?

Metode statis digunakan saat kita perlu memproses data yang terkait dengan kelas, bukan instance. Metode statis tidak memiliki argumen mandiri dan bersarang di kelas dan dirancang untuk bekerja pada atribut kelas alih-alih atribut instance.

Bagaimana Anda memanggil metode statis dengan Python?

Kita harus secara eksplisit memberi tahu Python bahwa ini adalah metode statis menggunakan dekorator @staticmethod atau fungsi staticmethod() . Metode statis didefinisikan di dalam kelas, dan sangat mirip dengan mendefinisikan fungsi biasa. Untuk mendeklarasikan metode statis, gunakan idiom ini. kelas C. @staticmethod def f(arg1, arg2,. ). .

Bisakah kita memanggil metode statis di luar kelas Python?

Ini berarti bahwa metode statis dapat dipanggil tanpa objek untuk kelas tersebut . Ini juga berarti bahwa metode statis tidak dapat mengubah status objek karena tidak terikat padanya.

Bisakah kita memanggil metode statis dari metode non statis Python?

Metode kelas normal dan metode statis dapat dicampur (karena mengapa tidak?). Ini bisa sangat membingungkan. kami menggunakan konsep orientasi objek dan pemrograman fungsional yang dicampur dalam satu kelas. Jika Anda membuat objek, kita dapat memanggil metode non-statis . Tapi Anda juga bisa memanggil metode statis tanpa membuat objek.