zoukankan      html  css  js  c++  java
  • python 面向对象-初识

    一、分类

    1、面向过程

    2、面向函数

    3、面向对象

    二、类和对象

    1、宏关

    类是抽象的,对象是具体的

    2、实例化

    类->对象

    3、类的作用

    1)实例化成对象

    实例化的过程,创建self对象,调用__init__()方法,获取返回值

    2)调用静态属性

    4、对象的作用

    1)调用函数

    2)查看属性

    5、补充

    1)类和属性都有__dict__

    2)self可以看成字典(不严谨)

    3)初始化的__init__和方法的形参必须有self

    4)类的名字首字母大写

    5)类的关键字class

    # 计算长方形的周长、面积 square  perimeter area
    class Square:       # 定义类
        def __init__(self, wide, height):   # 初始化
            self.wide = wide
            self.height = height
    
        def per(self):      # 周长方法
            return (self.height + self.wide) * 2
    
        def area(self):     # 面积方法
            return self.wide * self .height
    
    
    s1 = Square(2, 4)   # 实例化
    p1 = s1.per()   # 对象调用方法
    a1 = s1.area()
    print(p1, a1)
    class Person:
        country = 'China'       # 静态属性/类属性
    
        def __init__(self, name, sex, age):     # 初始化
            self.name = name
            self.sex = sex
            self.age = age
    
        def hobby(self, hob):
            print('大叫好,俺叫%s,我是%s生,我今年%d岁,我喜欢%s' % (self.name, self.sex, self.age, hob))
    
    
    person = Person('张飞', '', 24)      # 实例化
    person.hobby('女人')      
    print(Person.country)
    Person.hobby(person, '女人')      # Person.hobby(person, '女人') 通过类调用方法,一般不这么写,与person.hobby('女人') 效果用于
    """"
    大叫好,俺叫张飞,我是男生,我今年24岁,我喜欢女人
    China
    大叫好,俺叫张飞,我是男生,我今年24岁,我喜欢女人
    """

     三、  命名空间

    1、类的命名空间

    定义:创建一个类就会创建一个类的命名空间

    作用:储存属性

    2、属性分类

    静态属性:类里面定义的变量

    动态属性:类里面定义的方法

    类命名空间的属性是共享对象的

    3、对象的命令空间

    类->对象,实例化,创建对象的命名空间,是__init__里的属性

    对象调用属性的过程:

    先从对象命名空间里找,找不到,到类命名空间找,找不到,就不会在找,抛出异常

    4、绑定方法

    对象/实例.方法名

    四、组合用法

    定义:一个类的对象作为另一个类的数据属性

    class Birthday:
        def __init__(self, month, day):
            self.month = month
            self.day = day
    
    
    class Teacher:
        def __init__(self, name, age, birth):
            self.name = name
            self.age = age
            self.birth = birth
    
    
    b1 = Birthday(11, 10)
    te = Teacher('tom', 22, b1)     # b1是Birthday类的对象,作为Teacher类的数据属性
    print(te.birth.month)
  • 相关阅读:
    python tkinter坐标转换
    python tkinter画圆
    打开pycharm提示python已停止工作
    关于python读写文件的r+方式的坑
    pycharm的一个bug,pycharm 在debug时,会运行项目下的所有文件,而不是当前文件
    python tkinter实时显示曲线
    书上关于*(p++)表达式的几种变形形式的思考题
    lua 中的 loadfile、dofile和require的调用
    css控制字体线使用:text-decoration
    devpi 快速入门:上传,测试,推送发行版
  • 原文地址:https://www.cnblogs.com/wt7018/p/10915125.html
Copyright © 2011-2022 走看看