概述: 类、构造函数、实例变量、实例方法、类变量
1. 什么是类?
class XXX: 或 class YYY():
定义类的时候,有括号,无括号;不带括号,继承的是object;有括号,可以继承另外一个类
2. self:指类的自身 [类似java里的this]
3. 构造函数、实例变量
__init__(self): 或 __init__(self,a,b,c):
构造函数,可以有参数(行参),可以无参数
构造函数在类实例化的时候会执行
构造函数里的变量为实例变量
实例变量可以是行参赋值,也可以是实例方法
4. 实例方法
XXX(self): 或 XXX(self,a,b,c):
实例方法,在类初始化的时候执行
5. 类变量
类变量,定义在类里面,与类的初始化无关
(一)
class User:
def __init__(self):
self.name="zhangsan"
self.age=18
def todo(self):
print("goto %s"%self.name)
def goto(self):
pass
u=User()
u.todo()
(二)
class driver():
count=1 #类变量(与类的初始化没有关系)
def __init__(self,car,year): #car为形参, 类实例化的时候会开辟一片car的内存空间
self.car=car # 为实例变量
self.login_sys() #实例变量可以为实例方法,没有返回值直接调用
self.age=self.get_age(year) #实例变量可以为实例方法,有返回值需要赋值
def do(self): #为实例方法(实例化后才能使用do这个方法)
print("我再开%s"%self.car)
def get_age(self,year):
print(2021-year)
return 2021-year;
def login_sys(self):
print("现在已经登陆")
d=driver("bmw",1990) #类的实例化
print(d.do) #引用 如果引用的是方法而不被调用(执行),那打印出的是个内存地址
print(d.count)#引用 如果引用是属性或者变量,打印出的是值
d.do() #调用 ,将方法执行,打印出得是执行后的结果
print(d.age)
# 执行的时候发现:类实例化的时候,实例变量 self.login执行了, self.age也执行了