一、类的概念
类的定义
- 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例
- 俗话说:人以群分,物以类聚。 种类/ 分类
- python使用class关键字定义一个类,类名的首字母一般要大写
代码定义:
class 类名:
类的组成部分
实例:
class Student:
#定义了一个Student类
类的命名
- 大驼峰命名: 两个单词的首字母大写
例如:class PerfectManHelp
- 下划线命名:_
例如:class perfect_man_help
二、对象
对象的表示方法
- 类名() ==> 对象的表示
例如:class Student(object):
实例1:
#定义了一个类
class Student:
pass
#定义一个对象
class Student (objetct):
pass
new_student = Student
print(new_student)
print(Student)
print(Student())
"""
打印结果:
__main__.Student
__main__.Student
<__main__.Student instance at 0x10c84b488>
"""
a = Student()
b = Student()
print(a)
print(b)
#a和b虽然取的一个Student ,但在存储器里,他俩的内存是不一样的
"""
打印结果:
<__main__.Student instance at 0x10b236488>
<__main__.Student instance at 0x10b2364d0>
"""
# is 判断另个变量两个值 是不是同一个对象 (经典面试题)
print(a is b) #打印结果:false
# 如何去进一步确定是不是同一个对象
print (id(a))
print (id(b))
"""
打印结果:
4484555984
4484555120
"""
三、属性
属性的定义
- python中的属性其实是普通方法的衍生
类属性
- 这个类的特征,这个群体的特征, 别的类(别的群体)可能不具备
- 使用python内置函数操作属性
类属性的获取
- 类型.属性:
- 可以先天定义也可以 后天学习
实例:
class Cat:
gender = "girl"
age = 2
print (Cat.gender) ===>打印结果:girl # Cat类的gender属性
print (Cat.age) ===>打印结果:2 # Cat类的age属性
#后天学习 自行添加
Cat.color = "white"
print (Cat.color) ===>打印结果:white # Cat类的age属性
#实例属性 后天添加
new_cat = Cat()
new_cat.where = "home"
print(new_cat.where) ===>打印结果:home
#重复赋值
class Man()
gender = "man"
new_man = Man()
new_man.gender = "woman"
print (new_man.gender) ===>打印结果:woman
错误实例:
class Cat:
gender = "girl"
age = 2
print (Cat.gender)
print (Cat.age)
new = Cat()
younger = Cat()
print (new.age)
print younger.gender
new.where = "home"
print (younger.where)
"""
打印结果:报错
AttributeError, 属性错误
"""