类的定义语法:
方式一:
class 类名:
pass
方式二:
class 类名(object):
pass
以上两种没有任何区别
类名的规范:遵循大驼峰命名规范(每个单词首字母大写),可以由数字字母下划线组成,不能数字开头
1、通过类实例化对象
语法:
对象=类名()
万物皆对象:所有数据都是对象(字符串,列表,函数,整数)
class Cat:
pass
# 创建对象
coffee = Cat()
jingle = Cat()
类的方法和属性
特征:属性
行为:方法
一、属性:
类属性:类名.属性名=属性值
实例属性定义:对象.属性名=属性值
①类属性定义:直接定义在类里面变量
②这类事务都是具有这个属性,并且属性值都一样,所有对象共有的
class Cat:
# 类属性
leg = 4
tail = 1
eye = 2
# 实例属性
coffee = Cat()
coffee.name = "加菲猫"
coffee.age = "18个月"
jingle = Cat()
jingle.name = "叮当猫"
jingle.age = "50个月"
二、方法
方法:定义在类里面的函数叫做方法,方法中使用return来返回数据
三、self
self:代表的是对象自己(对象本身)
class Cat:
# 类属性
leg = 4
tail = 1
eye = 2
def func(self):
print("这是抓老鼠的功能")
def skill(self):
print("这是爬树的功能")
# 通过猫类创建对象
coffee = Cat()
coffee.name = "加菲猫"
coffee.age = "18个月"
# 通过对象调用方法
coffee.func()
class Cat:
# 类属性
leg = 4
tail = 1
eye = 2
def func(self, addr, number):
print("{}正在{}抓{}只老鼠".format(self.name, addr, number))
def skill(self):
print("这是爬树的功能")
# 通过猫类创建对象
coffee = Cat()
coffee.name = "加菲猫"
coffee.age = "18个月"
# 通过对象调用方法
coffee.func('tree', 1)
类属性的调用:
1、可以通过类去调用>类.属性名
2、可以通过对象调用>对象.属性名
实例属性的调用:
只能通过对象去调用自己的属性
方法的调用:
1、不能直接用类调用(因为没有对象)
2、只能通过对象直接调用
方法的分类:
方法中第一个参数是self的方法,叫做实例(对象)方法
魔术方法:双下划线开头和双下划线结尾的方法,不需要手动调用,在特定的情况下自动调用
初始化方法:init
在通过类穿件对象时自动调用的
class Person:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
musen = Person('musen', 18, '男')