一、类中定义成员方法
"""
格式一:
class 类名:
def 方法名(self):
方法体...
"""
(1.1)定义成员方法,并使用成员变量
class Student:
#成员变量
def __init__(self):
self.name=None
self.gender=None
#成员方法: self 仅在声明时占位, 无需传递具体参数
def play(self):
print(self.name+'的性别 '+self.gender+",她正在玩游戏!")
def study(self):
print(self.name+'的性别 '+self.gender+",她正在学习!")
# #创建对象
stu =Student()
#赋值
stu.name='mike'
stu.gender='Woman'
#调用方法
stu.play()
stu.study()
(1.2)定义成员方法,有参数
class Student:
#成员变量
def __init__(self):
self.name=None
self.gender=None
#成员方法带参数: self 仅在声明时占位, 无需传递具体参数
def play(self,thing):
print(f'{self.name}的性别-{self.gender},她正在玩{thing}')
def study(self,thing='java'): # 默认形参
print(f'{self.name}的性别-{self.gender},她正在学习{thing}')
#创建对象
stu =Student()
#赋值
stu.name='samantha'
stu.gender='Woman'
#调用方法
stu.play('CS')
stu.study()
二、__init__() 方法在创建对象时被运行, 无需手工调用即可执行。
class Emp:
def __init__(self):
self.ename=None
#初始化成员变量这个方法,可以写多个,是按顺序执行的!
def __init__(self):
self.ename = 'zhang'
def __init__(self):
self.ename = 'vv'
print('start....')
#创建对象时,自动执行初始化方法
emp =Emp()
print('end....')
print(emp.ename)
# 注意:说明有多个这个__init__(self)方法时,按照顺序执行!,并创建对象直接执行的哦!
三、__str__() 方法在使用print打印对象时, 会自动执行代码, 也属魔术方法。
格式:
def __str__(self):
return “信息”
class Cat:
def run(self):
return ('猫跑步!!')
class Dog:
def __str__(self):
return ('dog is running!')
cat =Cat()
# <__main__.Cat object at 0x000001FB558E9280> 对象的内存地址 没有什么含义
print(cat)
dog=Dog()
#打印对象时,会自动执行
print(dog)