格式:
class 类名称:
方法列表
demo:
# class Hero: # 经典类(旧式类)定义形式
# 定义一个英雄类
class Hero(object):
def info(self):
print("英雄莫问出处")
说明:
定义类时有2种形式:新式类和经典类,上面代码中的Hero为新式类,前一行注释部分则为经典类;
object 是Python 里所有类的最顶级父类;
类名 的命名规则按照"大驼峰命名法";
info 是一个实例方法,第一个参数一般是self,表示实例对象本身,当然了可以将self换为其它的名字,其作用是一个变量,这个变量指向了实例对象
详细格式:
class 类名(object):
def 方法1(self,参数列表) # 必须是self
pass
def 方法2(self,参数列表)
pass
python中,可以根据已经定义的类去创建出一个或多个对象。
格式:
对象名 = 类名()
demo:
class Hero(object):
def info(self):
"""info 是一个实例方法,类对象可以调用实例方法,实例方法的第一个参数一定是self"""
print(self)
"""当对象调用实例方法时,Python会自动将对象本身的引用做为参数,传递到实例方法的第一个参数self里"""
print("self各不同,对象是出处")
# Hero这个类 实例化了一个对象
super_man = Hero()
# 对象调用实例方法info(),执行info()里的代码
# . 表示选择属性或者方法
super_man.info()
print(super_man) # 打印对象,则默认打印对象在内存的地址,结果等同于info里的print(self)
print(id(super_man)) # id(super_man)则是内存地址的十进制形式表示
class Hero(object):
"""定义了一个英雄类,可以移动和攻击"""
def move(self):
"""实例方法"""
print("正在前往事发地点...")
def attack(self):
"""实例方法"""
print("发出了一招强力的普通攻击...")
# 实例化了一个英雄对象 泰达米尔
taidamier = Hero()
# 给对象添加属性,以及对应的属性值
taidamier.name = "泰达米尔" # 姓名
taidamier.hp = 2600 # 生命值
taidamier.atk = 450 # 攻击力
taidamier.armor = 200 # 护甲值
# 通过.成员选择运算符,获取对象的属性值
print("英雄 %s 的生命值 :%d" % (taidamier.name, taidamier.hp))
print("英雄 %s 的攻击力 :%d" % (taidamier.name, taidamier.atk))
print("英雄 %s 的护甲值 :%d" % (taidamier.name, taidamier.armor))
# 通过.成员选择运算符,获取对象的实例方法
taidamier.move()
taidamier.attack()
class Hero(object):
"""定义了一个英雄类,可以移动和攻击"""
def move(self):
"""实例方法"""
print("正在前往事发地点...")
def attack(self):
"""实例方法"""
print("发出了一招强力的普通攻击...")
def info(self):
"""在类的实例方法中,通过self获取该对象的属性"""
print("英雄 %s 的生命值 :%d" % (self.name, self.hp))
print("英雄 %s 的攻击力 :%d" % (self.name, self.atk))
print("英雄 %s 的护甲值 :%d" % (self.name, self.armor))
# 实例化了一个英雄对象 泰达米尔
taidamier = Hero()
# 给对象添加属性,以及对应的属性值
taidamier.name = "泰达米尔" # 姓名
taidamier.hp = 2600 # 生命值
taidamier.atk = 450 # 攻击力
taidamier.armor = 200 # 护甲值
# 通过.成员选择运算符,获取对象的实例方法
taidamier.info() # 只需要调用实例方法info(),即可获取英雄的属性
taidamier.move()
taidamier.attack()
提示:
后续代码都是些新式类形式