实例方法

实例方法

实例方法就是对象方法,需要实例化对象才能调用的方法。

Python中只要新建了一个类就会自动的创建它的内置属性和方法,可以用dir(类名)来进行查看。

代码

#!/usr/bin/env python

class Dog:
    pass

print(dir(Dog))

运行结果

┌──(root㉿kali)-[~/python_code/python_3]
└─# python class.py
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

类中定义函数的方法跟定义普通函数方法大致相同,唯一的区别就是类中的函数有一个self参数,且这个参数还要放在首位(这个参数必须有),用来表示实例化对象的引用,或者说其实就是表示实例对象本身,也就是对象自己。

代码

#!/usr/bin/env python

class Dog:
    def __init__(self):
        self.name = "大黄"
        
dog = Dog()
print(dog.name)        

运行结果

┌──(root㉿kali)-[~/python_code/python_3]
└─# python Dog.py
大黄

init是魔法方法,用来初始化对象的属性值。

实际开发中狗的名字不是全叫大黄,狗的名字可以自定义。

以上代码优化

#!/usr/bin/env python

class Dog:
    def __init__(self,name):
        self.name = name
        
dog1 = Dog("大黄")
dog2 = Dog("二狗子")

print(dog1.name)
print(dog2.name)

运行结果

┌──(root㉿kali)-[~/python_code/python_3]
└─# python Dog.py
大黄
二狗子

在实际开发中我们会使用repr方法自定义类输出打印的格式,主要用来调试类使用的。

代码

#!/usr/bin/env python

class Dog:
    def __init__(self,name):
        self.name = name
    
    def __repr__(self):
        return f"Dog:{self.name}"
        
dog1 = Dog("大黄")
dog2 = Dog("二狗子")

print(dog1.name)
print(dog2.name)

print(dog1)
print(dog2)

运行结果

┌──(root㉿kali)-[~/python_code/python_3]
└─# python Dog.py
大黄
二狗子
Dog:大黄
Dog:二狗子

正式讲解一下实例方法

实例方法即对象方法,要用对象调用才行。

错误代码

#!/usr/bin/env python

class Dog:
    def __init__(self):
        self.name = "laifu"
    
	def get_name(self):
        return self.name
    
print(Dog.get_name())

运行结果

┌──(root㉿kali)-[~/python_code/python_3]
└─# python Dog2.py
Traceback (most recent call last):
  File "/root/python_code/python_3/Dog2.py", line 11, in <module>
    print(Dog.get_name())
          ^^^^^^^^^^^^^^
TypeError: Dog.get_name() missing 1 required positional argument: 'self'

正确代码

#!/usr/bin/env python

class Dog:
    def __init__(self):
        self.name = "laifu"
    
	def get_name(self):
        return self.name

#创建一个对象
dog = Dog()
print(dog.get_name())

运行结果

┌──(root㉿kali)-[~/python_code/python_3]
└─# python Dog2.py
laifu
posted on 2025-06-22 22:59  burgess0x  阅读(10)  评论(0)    收藏  举报