zoukankan      html  css  js  c++  java
  • 类的定义和使用

    1、类的定义
    #先来看一个类的示例:
    1 #! /usr/bin/python3
    2 #-*-coding:UTF-8 -*-
    3 #Class_test
    4 
    5 class MyClass(object):
    6     i=123
    7     def f(self):
    8         return 'hello world'
    #由上面的代码可以得知,类定于的语法格式如下:
    1 class ClassName(object):
    2           <statement-1>
    3           . 
    4           .
    5           .
    6           <statement-N>
    #由代码片段和类定义我们看到,Python中定义类使用class关键字,class后面紧接着类名。如示例中的MyClass,类名通常是大写开头的单词;紧接着是(object),表示该类是从哪个类继承下来的。通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。类包含属性(相当于函数中的语句)和方法(类中的方法大体可以理解成前面学的函数)。
    #在类中定义方法的形式和函数差不多,但不称为函数,而称为方法。方法的调用需要绑定到特定对象上,而函数不需要。我们后面会逐步接触方法的调用方式。
     
    2、类的使用
    #前面已经了解了类的定义,现在以上面的那个例子为例,保存并执行:
     1 #! /usr/bin/python3
     2 #-*-coding:UTF-8 -*-
     3 #Class_test
     4 
     5 class MyClass(object):
     6     i=123
     7     def f(self):
     8         return 'hello world'
     9 
    10 use_class=MyClass()
    11 print('调用类的属性:',use_class.i)      #print('调用类的属性:',MyClass.i)
    12 print('调用类的方法:',use_class.f())
    #执行结果如下:
    1 ============== RESTART: C:/Users/DL He/Desktop/Class_test_1.py ==============
    2 调用类的属性: 123
    3 调用类的方法: hello world
    #由输入代码的调用方式可知,类的使用比函数调用多了几个操作,调用类时需要执行如下操作:
    1 use_class=MyClass()
    #这步叫作类的实例化,即创建一个类的实例。此处得到的use_class变量称为类的具体对象。再看看后面两行的调用:
    1 print('调用类的属性:',use_class.i)
    2 print('调用累的方法:',use_class.f())
    #这里第一行后的use_class.i用于调用类的属性,也就是前面所说的类变量。第二行后的use_class.f()用于调用类的方法。
    #在上面的示例中,在类中定义f()方法时带了一个self参数,该参数在方法中并没有被调用,是否可以不要呢?调用f()方法时没有传递参数,是否表示参数可以传递也可以部传递?
    #对于在类中定义方法的要求:在类中定义方法时,第一个参数必须是self。除了第一个参数外,类的方法和普通函数没什么区别,如可以用默认参数、可变参数、关键字参数和命名关键字参数等。
    #对于在类中调用方法的要求:要调用一个方法,在实例变量上直接调用即可。除了self不用传递,其他参数正常传入。
    #类对象支持两种操作,即属性引用和实例化。属性引用的标准语法如下:
    1 obj,name
    #语法中obj代表类对象,name代表属性。
  • 相关阅读:
    1144 The Missing Number (20分)
    1145 Hashing
    1146 Topological Order (25分)
    1147 Heaps (30分)
    1148 Werewolf
    1149 Dangerous Goods Packaging (25分)
    TypeReference
    Supervisor安装与配置()二
    谷粒商城ES调用(十九)
    Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
  • 原文地址:https://www.cnblogs.com/DLHe/p/7860441.html
Copyright © 2011-2022 走看看