python从入门到放弃

python-15-面向对象基础1

2018-10-25  本文已影响0人  楠木cral

一、类和对象
1.什么是类和对象
类 - 是拥有相同属性和相同功能的对象的集合(抽象的)
对象 - 就是类的实例(具体的)

从生活的角度来看类和对象
如果说人是一个类, 余婷就是一个对象,骆昊也是一个对象
如果说电脑是一个类,我桌上的这台mac就是一个对象
如果水杯是一个类,具体的某个水杯才是这个类的对象
如果车是一个类,汽车、自行车、摩托车等这些是这个类的子类, 具体的某一辆车才是对象

2.类的声明
格式:
class 类名(父类列表):
类的说明文档
类的内容

说明:
class -> python中声明类的关键字
类名 -> 标识符,不能是关键字;类名使用驼峰式命名,并且首字母大写;见名知义
驼峰式命名:如果一个名字由多个单词组成,第一个单词首字母小写,后面每个单词首字母大写
userName
PEP8命名规范:如果一个名字由多个单词组成,所有字母小写,多个单词之间用下划线隔开
user_name
(父类列表) -> 继承语法,让声明的类继承括号中的父类。这个结构可以省略,让当前类继承python的基类:object
: -> 固定结构
类的说明文档 -> 注释,对类进行说明。
类的内容 -> 包含属性(变量)和方法(函数)
方法:声明在类中的函数

声明Person类,吃饭和睡觉

class Person:
    """人类"""

    def eat(self):
        print('吃饭!')

    def sleep(self):
        print('睡觉!')

3.对象的声明
格式:
对象名 = 类名()

对象名 -> 变量名
类名 -> 必须是声明过的类
声明了Perosn类的对象p1

p1 = Person()
p2 = Person()

二、属性和方法
1.类的内容包含属性和方法, 方法分为对象方法、类方法和静态方法
对象方法:直接声明在类中的函数就是对象方法。对象方法都有一个默认参数self, 通过对象来调用
对象方法的调用: 对象.方法名()。调用对象方法的时候,不需要给默认参数self传参。
系统会自动将当前对象传递给self 。
self: 谁调用当前的对象方法,self就指向谁。self就是当前类的对象,类的对象能做的事情,self都能做

# 声明类
class Person:
    """人类"""

    # 对象方法eat
    def eat(self, name):
        # self = p1, name = '小明'
        print('self:',self)
        print('吃饭!')
        self.sleep()

    def sleep(self):
        print('s_self', self)
        print('睡觉')

# 声明对象
p1 = Person()
print('p1:', p1)
p1.eat('小明')
# p1.sleep()

p2 = Person()
print('p2:', p2)
p2.eat('小红')

三、构造函数
1.构造方法
构造方法就是函数名和类名一样的方法,作用是用来创建对象的。
声明类的时候,系统会自动为这个类创建对应构造方法

创建对象的过程:调用构造方法在内存中开辟空间创建对象,并且会自动调用init方法去对这个对象进行初始化,
最后将创建好的对象的地址返回

2.init方法
对象方法
不需要手动调用,创建完对象后,会被自动调用

class Dog:
    """🐶类"""
    def __init__(self):
        print(self)
        print('init方法')

dog1 = Dog()
print(dog1)

dog2 = Dog()

3.带参其他参数的init方法
init方法的参数要通过构造方法来传。(构造方法的实参,会传递给init方法的形参)

class Person:
    def __init__(self, name='', age=0):
        print(name, age)

p1 = Person('小红', 20)
p2 = Person('小明')
p3 = Person(age=10)

if __name__ == '__main__':
    pass
上一篇 下一篇

猜你喜欢

热点阅读