zoukankan      html  css  js  c++  java
  • Python3笔记036

    第7章 面向对象程序设计

    • 7.1 面向对象概述
    • 7.2 类的定义
    • 7.3 类的实例化
    • 7.4 访问限制
    • 7.5 继承
    • 7.6 封装
    • 7.7 多态
    • 7.8 装饰器
    • 7.9 特殊方法

    7.2 类的定义

    1、类的创建

    在python中,要用class语句来创建类,class也是python中的关键字。

    # 验证class是否为python的关键字
    import keyword
    print(keyword.iskeyword('class'))
    output:
    True
    

    定义类的语法格式

    class ClassName():
        '''类的帮助信息'''
        statement
        
    参数说明
    以class开头,空格后加类名,类名比函数多了一个要求,就是首字母大写。冒号表示类名定义结束。
    类名后的括号,无继承时去掉括号,要不然会提示"remove redundant parentheses"删除多余的括号。
    ClassName:类名,开头字母大写,一般采用驼峰式命名法
    statement:类体,主要由类属性、类方法组成
    

    # 定义一个最简单的类
    class Book(object):
        pass
    

    2、创建类的属性

    类的属性是指在类中定义的变量,即属性,根据定义位置,可以分为类属性和实例属性

    类属性,是指定义在类中,并且在方法体外的属性。可以通过类名或者实例名访问。

    # 定义一个带有属性的类
    class Book(object):
        title = 'python3' # title为类属性
        price = 50
    

    3、创建类的方法

    类的成员主要由类的属性和方法组成。创建类的成员后,可以通过类的实例访问它们。

    # 定义一个带有类方法的类
    class Book(object):
        title = 'python3'  # title为类属性
        price = 50
    
        def printprice(self, num): # printprice为类方法
            print(self.title + ':', num, '册' + self.price * num, '元')
    

    4、创建__init__方法

    在创建类后,系统会自动创建一个__init__方法,每当创建一个类的实例时,python都会自动执行它。也可以手动创建一个__init__方法。

    class Rectangle():
    
        def __init__(self, a, b):
    
            self.a = a
            self.b = b
    
        def getPeri(self):
            peri = (self.a + self.b) * 2
            return peri
    
        def getArea(self):
            area = self.a * self.b
            return area
    
    
    rect = Rectangle(3, 4)
    
    print(rect.getPeri())
    
    print(rect.getArea())
    
    print(rect.__dict__)
    
    

    __init__方法的第一参数必须是self,然后逗号分隔其它参数。

    # 拓展:查看对象拥有的所有方法
    # 定义一个带有类属性的类
    class Book(object):
        title = 'python3'  # title为类属性,python3为属性值
        price = 50
    
        def printprice(self, num):
            print(self.title + ':', num, '册' + self.price * num, '元')
    
    
    book1 = Book()
    print(dir(book1))
    output:
    ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'price', 'printprice', 'title']
    
  • 相关阅读:
    张五常:思考的方法
    David Foster Wallace on Life and Work
    SQL SERVER SQL Agent服务使用小结
    js大全
    中国载人航天工程七大系统
    vc 编译遇到问题
    学习Excel技巧
    使用Request.ServerVariables获取环境变量
    c# 字符常用函数
    SQL数据同步
  • 原文地址:https://www.cnblogs.com/infuture/p/13343150.html
Copyright © 2011-2022 走看看