对象(object): 将属性和方 法封装在一起。
具有相同的属性和方法的对象集合。
对象是类的实例
子类继承了父类的全部属性和方法, 并且也有自己特有的属性和方法。
继承描述了类之间的层次关系
class 类名:
类属性=初值
方法(参数列表)
类名. 类属性
对象名.类属性
#类
class Person():
#成员变量 类属性
money=100000
#成员函数 类方法
def say_hello(self):#方法中必须有一个参数self,而且它是参数列表中的第一个参数
#由同一个类可以生成很多个对象,每一个对象,都有一个专属的self,代表这个对象自身
print("hello")
#创建对象
zhangsan = Person()
#访问对象类属性成员变量
print(zhangsan.money)
#这是一个动态添加的实例属性,它只属于zhangsan自己,如果重新创建其他的Person()对象,是没有这个属性的
zhangsan.major="computer"
print(zhangsan.major)
#访问类属性成员函数
zhangsan.say_hello()
Person.money=12#修改类属性,所有实例的值都会发生变化。
#删除对象
del zhangsan
(可以省略)
__init__(self, 参数2, 参数3, ....)
在创建对象时,用来完成初始化操作。
当创建对象时,系统会自动调用构造函数。
可以把对成员变量赋初值的语句写在构造函数中,从而保证每个变量 都有合适的初始值
(可以省略)
__del__( )
在清除对象时,回收和释放对象所占用的资源。
class Person:
#在Python中,构造函数和析构函数也可以省略。
#构造函数:在创建对象时,用来完成初始化操作。
#当创建对象时,系统会自动调用构造函数。
#gender="男"默认初值
def __init__(self,name,age,gender="男"):
self.name=name
self.age=age
self.gender=gender
#析构函数:在清除对象时,回收和释放对象所占用的资源
def __del__(self):
print("Bye bye from",self.name)
def printInfo(self):
print("姓名:",self.name,"年龄:",self.age,"性别:",self.gender)
zhangsan = Person("张三",18)
lisi = Person("李四",19,"女")
zhangsan.printInfo()
lisi.printInfo
del zhangsan
del lisi
可以通过类名或者对象调用。
不能访问实例属性,但可以访问类属性(类声明时就有的)
class 类名:
@classmethod
def 类方法名(cls,):
方法体
可以通过类名或者对象名调用,
不能访问实力属性,也不能直接访问类属性,但是可以通过类名引用类属性
class 类名:
@staticmethod
def 类方法名():
方法体
公有变量:可以在类的外部访问
保护变量:值允许其本身和子类进行访问
私有变量:不允许在类的外部访问
__XXX:私有变量
_XXX:保护变量
__XXX__:专有变量,方法
子类能够继承父类中所有非私有的成员变量和成员函数
class 子类名(父类名)
类属性=初值
方法(参数列表)
class Person1():
money=10000
def syahello(self):
print("hello1234567")
class Teacher(Person1):
pass
amy = Teacher()
print(amy.money)
amy.syahello()