本文目录导读:

在Python中调用实例方法主要有以下几种方式,我来详细介绍:
最基本方式:通过实例对象调用
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def show_info(self):
print(f"姓名:{self.name},成绩:{self.score}")
def update_score(self, new_score):
self.score = new_score
# 创建实例
stu = Student("小明", 95)
# 调用实例方法(最常用方式)
stu.show_info() # 输出:姓名:小明,成绩:95
stu.update_score(98)
stu.show_info() # 输出:姓名:小明,成绩:98
通过类名调用,需要显式传入实例
# 通过类名调用(需要传入实例对象) Student.show_info(stu) # 输出:姓名:小明,成绩:98
链式调用(方法返回self)
class Calculator:
def __init__(self, value=0):
self.value = value
def add(self, num):
self.value += num
return self # 返回自身实例
def subtract(self, num):
self.value -= num
return self
def multiply(self, num):
self.value *= num
return self
def result(self):
print(f"计算结果:{self.value}")
# 链式调用
calc = Calculator()
calc.add(10).multiply(2).subtract(5).result() # 输出:计算结果:15
方法作为属性调用
class Printer:
def __init__(self, text):
self.text = text
def print_message(self):
print(f"消息:{self.text}")
p = Printer("Hello")
# 将方法赋值给变量
msg_func = p.print_message
# 通过变量调用
msg_func() # 输出:消息:Hello
异常处理中的调用
class Database:
def __init__(self):
self.data = {}
def save(self, key, value):
self.data[key] = value
print(f"已保存:{key}={value}")
def load(self, key):
if key in self.data:
return self.data[key]
else:
raise KeyError(f"键 '{key}' 不存在")
db = Database()
try:
db.save("name", "张三")
result = db.load("name")
print(f"读取结果:{result}")
# 尝试读取不存在的键
db.load("age")
except KeyError as e:
print(f"错误:{e}")
条件判断中的调用
class User:
def __init__(self, is_admin=False):
self.is_admin = is_admin
def view_dashboard(self):
print("查看控制面板")
def manage_users(self):
if self.is_admin:
print("管理用户(需要管理员权限)")
else:
print("无权限")
user = User(is_admin=True)
# 条件判断调用
if user.is_admin:
user.view_dashboard()
user.manage_users()
批量调用方法
class Team:
def __init__(self, members):
self.members = members
def start_work(self):
for member in self.members:
member.work()
class Worker:
def __init__(self, name):
self.name = name
def work(self):
print(f"{self.name} 正在工作")
# 创建多个实例
worker1 = Worker("张三")
worker2 = Worker("李四")
worker3 = Worker("王五")
# 批量调用
team = Team([worker1, worker2, worker3])
team.start_work()
# 输出:
# 张三 正在工作
# 李四 正在工作
# 王五 正在工作
使用getattr动态调用
class CommandHandler:
def hello(self):
return "你好!"
def goodbye(self):
return "再见!"
def help(self):
return "可用命令:hello, goodbye, help"
handler = CommandHandler()
# 根据用户输入动态调用方法
commands = ['hello', 'goodbye', 'help']
for cmd in commands:
if hasattr(handler, cmd):
method = getattr(handler, cmd)
result = method()
print(f"调用 {cmd}:{result}")
- 最常用:
instance.method()方式 - 类调用:
ClassName.method(instance),需要传实例 - 链式调用:方法返回
self实现连续调用 - 动态调用:使用
getattr()、hasattr()等实现
实例方法的第一个参数永远是 self,但调用时不需要显式传递。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播