Python学习6.1类与对象

一、类的定义

1、类的组成:

  • 类属性
  • 实例方法
  • 静态方法
  • 类方法

eg:

输入:

class Student:
    native_place = "云南"
# 类属性

    def init(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def info(self):
        print("我的名字叫:", self.name, "n年龄是:", self.age)
    def eat(self):
        print("学生在吃饭")
# 实例方法

    @classmethod
    def cm(cls):
        print("类方法")
# 类方法

    @staticmethod
    def sm():
        print("静态方法")
# 静态方法

二、关于对象

1、对对象的操作:

输入:

class Student:
    native_place = "云南"
# 类属性

    def __init__(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def info(self):
        print("我的名字叫:", self.name, "年龄是:", self.age)

    def eat(self):
        print("学生在吃饭")
# 实例方法

    @classmethod
    def cm(cls):
        print("类方法")
# 类方法

    @staticmethod
    def method():
        print("静态方法")
# 静态方法

stu1 = Student("ww", 19)
print(stu1)

stu1.eat()
Student.eat(stu1)
# 这两句效果一致

stu1.info()
print(stu1.name)
print(stu1.age)

Student.cm()
Student.method()

输出:

<__main__.Student object at 0x0000020AC1ABBE80>
学生在吃饭
学生在吃饭
我的名字叫: ww 年龄是: 19
ww
19
类方法
静态方法

2、动态绑定属性:

输入:

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def eat(self):
        print(self.name, "在吃饭")


stu1 = Student("ww", 19)
stu2 = Student("zwj", 8000)
stu1.gender = "女"
stu2.gender = "狗"
print(stu1.name, stu1.age, stu1.gender)
print(stu2.name, stu2.age, stu2.gender)

输出:

ww 19 女
zwj 8000 狗

3、动态绑定方法:

输入:

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
# name, age为实例属性

    def eat(self):
        print(self.name, "在吃饭")


stu1 = Student("zwj", 8000)

def dress():
    print("a")

stu1.dress = dress
stu1.dress()

输出:

a

三、面向对象三大特征

1、封装:把属性的一系列方法包含在一个类里面

2、继承:

输入:(StudentTeacher 继承了 Person

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def info(self):
        print(self.name, self.age)


class Student(Person):
    def __init__(self, name, age, score):
        super().__init__(name, age)
        self.score = score


class Teacher(Person):
    def __init__(self, name, age, year):
        super().__init__(name, age)
        self.year = year


stu = Student("zwj", 80, 110)
tea = Teacher("hxc", 8000, 7980)

stu.info()
tea.info()

输出:

zwj 80
hxc 8000

注:一个子类可以有多个父类

你可能感兴趣的:(编程学习笔记,python,学习)