类
面向对象编程,是最有效的编写方法之一,你会发现第三方库的源码基本都使用了类,所以有必要学习 什么是类。
基本概念
实例化
根据类来创建对象称为实例化
创建类和使用类
创建Dog类
class Dog():
"""一次模拟小狗的简单尝试"""
def __init__(self, name, age):
"""初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟小狗被命令时蹲下"""
print(self.name.title() + " is now sitting.")
def roll_over(self):
"""模拟小狗被命令时打滚"""
print(self.name.title() + " rolled over!")
创建实例
my_dog = Dog('willie', 6) # 实例
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
my_dog.sit()
my_dog.roll_over()
打印出
My dog's name is Willie.
My dog is 6 years old.
Willie is now sitting.
Willie rolled over!
查看类型
print('my_dog', type(my_dog))
print('my_dog.name', type(my_dog.name))
print('my_dog.sit()', type(my_dog.sit()))
print('my_dog.sit', type(my_dog.sit))
my_dog <class '__main__.Dog'>
my_dog.name <class 'str'>
Willie is now sitting.
my_dog.sit() <class 'NoneType'>
my_dog.sit <class 'method'>
1.类的命名
class Dog()
是类,Dog是其类的命名,它的首字母需要大写,约定成俗。
创建实例 my_dog
,则是小写开头,这样子,你便容易区分开来。
2.方法
def开头(函数),在类当中都属于方法
方法__init__
是一种特殊的方法,每当根据Dog类创建新实例时,Python都会自动运行它,开头和末尾的两个下划线,是一种约定,目的是避免python默认方法与普通方法起冲突。
通过对实参Dog()
传递名字和年龄,如·my_dog = Dog('willie', 6)
;self会自动传递,只需给最后两个形参(name和age)提供值。
为什么叫方法?
<class 'method'>
可以通过此看到,method = 方法
3.属性——前缀self
def __init__
中的name/age均有self,以self开头的变量可以供类中的所有方法使用。
还可以通过类的任何实例访问这些变量。
例如 self.name = name
获取存储在形参name中的值,并将其存储到name中,然后该变量被关联到当前创建的实例。
像这样子可以通过实例访问的变量称为 属性
4.访问属性
my_dog.name
,访访问实例的属性,用句点表示法。
顺序是 先找到实例my_dog,再找到这个实例关联的属性name
Dog类引用这个属性时,使用的是self.name。
5.调用方法
my_dog.sit()
Python在类Dog中查找方法sit()并运行其代码。Python以同样的方式解读 代码my_dog.roll_over()。
6.命名规则强调
类的命名首字母大写。
实例小写。
属性和方法的命名需指定合适描述,使其没见过内容也可清晰知道做什么。
网友评论