Python面向对象一--17

  • 类的定义

关键字:class
class 类名:
类名的命名规范:每个单词的第一个字母必须是大写(大驼峰命名)
通过类创建对象:类名()

class Cat:
  pass
# 通过类创建对象:类名()
kt = Cat()
  • 类属性和实例(对象)属性

属性:定义在类中的变量
类属性:这类事物所有的对象都有这个属性,属性值都是一样的
直接在类里面定义的变量叫做类属性
实例属性:这类事物所有的对象都有这个属性,但是属性值不一样的
对象.属性 = 属性值(获取属性值)(不能通过类获取实例属性)

# 定义一个猫类
class Cat:
    # 类属性
    leg = "四条腿"
    tail = "有尾巴"
# 通过类创建对象
dd = Cat()
kt = Cat()
# 定义实例属性
kt.age = 20
dd.age = 6
# 获取属性值:对象.属性  (不能通过类去获取实例属性)
kt.age
dd.age
# 通过对象可以获取类属性
print(kt.tail)
print(dd.tail)
# 通过类也可以获取类属性
print(Cat.tail)

定义实例属性通过初始化方法(__ init __)来定义
初始化方法:
创建对象的时候自动执行的,不需要手动调用这个方法

class Cat:
    # 类属性
    teg = "四条腿"
    tail = "有尾巴"

    # 定义实例属性通过初始化方法(__init__)来定义
    def __init__(self, age, name):
        # 定义实例属性
        self.age = age
        self.name = name
        # (self:代表的就是对象(谁去调用这个方法,代表的就是谁))
        print("正在给对象设置属性")

# 创建对象
kt = Cat(age=18,name="凯蒂")
print(kt)

hh = Cat(age=20,name='灰灰')
print(hh)
  • 类的方法和实例方法

方法:就是定义在类中的函数
1、类方法
2、实例方法
定义在类里面的函数:叫做方法(本质上还是函数)
实例方法的第一个参数必须要写成self,这个参数是不需要传参的

class Cat:
    teg = "四条腿"
    tail = "有尾巴"

    # 定义实例属性通过初始化方法(__init__)来定义
    def __init__(self, age, name):
        self.age = age
        self.name = name

    def skill1(self):
        print('{}猫的技能1,吃鱼'.format(self.name))

    def skill2(self):
        print('{}猫的行为2:抓老鼠'.format(self.name))

# 创建对象
kt = Cat(age=18, name="凯蒂")
hh = Cat(age=20,name='灰灰')

# 通过对象调用实例方法
kt.skill1()
kt.skill2()

hh.skill1()
hh.skill2()

你可能感兴趣的:(Python面向对象一--17)