类的定义和使用
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代表属性。