python基础 day23 面向对象2

python中一切皆对象,对象的类型就是类

一、类的成员和命名空间

  • 类中的变量是静态变量
  • 对象中的变量只属于对象本身,每个对象有属于自己的空间来存储对象的变量
  • 当使用对象名去调用某一个属性的时候会优先在自己的空间中寻找,找不到再去对应的类中寻找
  • 如果自己没有就引用类的,如果类也没有就报错
  • 对于类来说,类中的变量所有的对象都是可以读取的,并且读取的是同一份变量
# 实现一个类,能够自动统计这个类实例化了多少个对象
class Jason:
    count = 0
    def __init__(self, hight, weight):
        Jason.count += 1
        self.hight = hight
        self.weight = weight
    def aloha(self):
        pass

info = Jason(171, 180)
print(info.count)
# 类中静态变量的用处
# 如果一个变量是所有的对象共享的值,那么这个变量应该被定义成静态变量
# 所有和静态变量相关的增删改查都应该使用类名来处理,而不应该使用对象名来修改

二、组合

​ 一个类的对象是另外一个类对象的属性

class Student:
    def __init__(self, name, age, sex, number, clas, phone):
        self.name = name
        self.age = age
        self.sex = sex
        self.number = number
        self.clas = clas
        self.phone = phone


class Clas:
    def __init__(self, cname, begin, teacher):
        self.cname = cname
        self.begin = begin
        self.teacher = teacher


py66 = Clas('python66期', '2020-04-01', '苍老师')
py99 = Clas('python99期', '2020-05-09', '波多老师')
jason = Student('jason', 24, 'man', '94131', py66, 15252767039)
carly = Student('carly', 21, 'woman', '990930', py99, 17717058385)
print(jason.clas.begin)
posted @ 2020-05-09 02:36  Jason857  阅读(111)  评论(0编辑  收藏  举报