标签:__ python self 学习 面向对象 对象 拷贝 age def
- 类
创建 class 类名 (): # 类名首字母大写,()可写可不写
pass
- 对象
对象名 = 类名()
- 类的组成
class Student:
school ='北京xx学校' # 类属性,定义在类中方法外的变量
# 初始方法
def __init__ (self,xm,age):
self.name = xm # 左侧是实例属性,右侧是局部变量,实例属性名跟局部变量名可以一样
self.age = age
# 定义在类中的函数成为实例方法,自带参数self
def show(self):
print(self.name)
print(self.age)
# 静态方法
@staticmethod
def sm():
print() # 这是一个静态方法,不能调用实例属性,也不能调用实例方法
@classmethod
def cm(cls):
print() # 这是一个类的方法,不能调用实例属性,也不能调用实例方法
- 动态绑定属性名和方法
class Student:
school ='北京xx学校'
def __init__ (self,xm,age):
self.name = xm
self.age = age
def show(self):
prinf()
stu = Student('韩梅梅',18)
stu.gender = '女'
def introduce():
print()
stu.fun = introduce
- 面向对象的三大特征: 封装、继承、多态
- 无下划线为普通的,可供内部外部本身,子类使用,单下划线 受保护的,只供本身和子类使用,双下划线开头,私有成员,只允许本身使用,首位双下划线,供特殊使用,如__init__
- dir(对象名) 返回对象所有属性方法
- 在类里面使用@property 修改方法转化成属性使用
- 在类里面使用@f方法名称.setter 修改属性
- 类的继承
class 类名(父类1,父类2.。。父类n):
pass
- object类
__new__() 系统创建对象自动执行
__init__()
__str__() 返回对象的内存地址描述信息
- 继承多个父类,调用__base__时显示继承的第一个类
- 类的深拷贝和浅拷贝
深拷贝:使用copy的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象都不相同 copy.deepcopy()
浅拷贝:拷贝时,对象包含的子对象不拷贝,因此,源对象和拷贝对象会引用同一个子对象 copy.copy()
标签:__,
python,
self,
学习,
面向对象,
对象,
拷贝,
age,
def
From: https://www.cnblogs.com/foxing/p/18014302