一、类的定义
# 面向对象#有意义的面向对象代码# 类 = 面向对象# 类、对象#实例化# 类最基本的作用:封装
class Student():
name = ''
age = 0 def print_file(self): print('name'+self.name) print('name'+str(self.age))
student=Student() #实例化student.print_file()
二、浅谈函数与方法的区别
方法 和 函数的区别 方法 :设计层面 函数:程序运行、过去式的一种称谓
三、类与对象。
类是描述 一类的 行为和特征
对象是具体的描述对象
类像一个模板一样 可以生成许多不同的对象
四、构造函数
#类、对象class Student():
name = ''
age = 0 #行为 与 特征
def __init__(self): #构造函数
print('student') def print_file(self): print('name'+self.name) print('name'+str(self.age))
s=Student()
s.__init__()
student #实例化时候 调用了构造函数student #单独调用了了构造函数构造函数不能返回除了None 以外的值
五、区别模块变量与类中的变量
六、类变量与实例变量
类变量:和类相关的变量
实例变量:和对象相关联的变量
class Student():
name = '' #类变量
age = 0 #行为 与 特征
#类变量、实例变量
def __init__(self,name,age): #构造函数
#初始化对象的属性
self.name=name #定义实例变量
self.age=age # print('student')
def print_file(self): print('name'+self.name) print('name'+str(self.age))
s=Student('大明',20)print(s.name) #打印实例变量 需要在类里面保存实例变量print(Student.name) #打印类变量
大明 ''
七、类与对象的变量查找顺序
实例名称. __dict__ 类中实例变量
八、self与实例方法
self 代表的实例 而不是类
九、在实例方法中访问实例变量与类变量
class Student():
name = 'qiyue' #类变量
age = 0
#行为 与 特征
#类变量、实例变量
def __init__(self,name,age):
#构造函数
#初始化对象的属性
self.name=name #定义实例变量
self.age=age
print(self.name)
print(self.__class__.name) #在实例方法中访问类变量
print(Student.name)
# print('student')
def print_file(self):
print('name'+self.name)
print('name'+str(self.age))
s=Student('大明',20)
大明 #实例变量
qiyue #访问类变量
qiyue # 类变量
十、类方法
class Student():
sum = 0
name = 'qiyue' #类变量
age = 0
#行为 与 特征
#类变量、实例变量
def __init__(self,name,age):
#构造函数
#初始化对象的属性
self.name=name #定义实例变量
self.age=age
self.__class__.sum +=1
print('当前学生总数为:'+ str(self.__class__.sum))
# print('student')
#实例方法
def do_homework(self):
print('do_homework')
@classmethod #类方法
def plus_sum(cls):
cls.sum +=1
print(cls.sum)
s=Student('大明',20)
Student.plus_sum()
结果:
当前学生总数为:12
十一、静态方法
和类和对象没有关系 建议不要经常用
@staticmethod #静态方法
def add(x,y):
print('This is 静态方法')
十二、成员可见性:公开和私有
通过方法来改变类中变量的值
public private python中没有这些关键字
在变量和方法前面加上双下划线 name __name
python 允许 实例化点来添加新的变量
通过 _类名__私有变量
十三、没有什么是不能访问
十四、继承.
class Human():
sum = 0
def __init__(self,name,age):
self.name = name
self.age = str(age)
def get_name(self):
print(self.name)class Student(Human):
# sum = 0
def __init__(self,school,name,age):
self.school = school
Human.__init__(self,name,age)
# self.__score = 0
# self.__class__.sum +=1
def do_homework(self):
print('do_homework')
s = Student('学校','拾光',18)
print(s.sum)
print(s.name)
print(s.age)
print(s.get_name())
结果:0拾光18拾光
None
十五、子类方法调用父类方法:super关键字
class Human():
sum = 0
def __init__(self,name,age):
self.name = name
self.age = str(age)
def get_name(self):
print(self.name)class Student(Human):
# sum = 0
def __init__(self,school,name,age):
self.school = school
# Human.__init__(self,name,age)
super(Student,self).__init__(name,age)
# self.__score = 0
# self.__class__.sum +=1
def do_homework(self):
print('do_homework')
s = Student('学校','拾光',18)
print(s.sum)
print(s.name)
print(s.age)
print(s.get_name())
结果:0拾光18拾光
None
原文出处:https://www.cnblogs.com/zhangtaotqy/p/9495538.html
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦


