""" 类的关键字:class 类的名称:首字母大写 Person 类的属性:公有属性和私有属性 类的方法:功能函数,可被子类继承 """ class Person(): height = 160 weight = 50 age = 20 def run(self): print("跑步") def eat(self): print("吃饭") xiaoli = Person() print("xiaoli对象:",xiaoli) #查看xiaoli实例化对象分配的内存地址 liming = Person() print("liming对象:",liming) #查看liming实例化对象分配的内存地址 xiaoli.run() #实例对象操作类中的方法 liming.eat() #实例对象操作类中的方法 print('--实例化对象属性修改--') print('实例化对象时xiaoli的身高{}体重{}'.format(xiaoli.height,xiaoli.weight)) xiaoli.height=170 xiaoli.weight=60 print('修改实例化对象xiaoli后,xiaoli的身高{}体重{}'.format(xiaoli.height,xiaoli.weight)) print('实例化对象xiaoli时,liming的身高{}体重{}'.format(liming.height,liming.weight)) liming.height=200 liming.weight=70 print('修改实例化对象liming后,liming的身高{}体重{}'.format(liming.height,liming.weight)) print('修改实例化对象liming后,xiaoli的身高{}体重{}'.format(xiaoli.height,xiaoli.weight)) #总结:对象修改属性后,此对象访问的属性是修改后的值,其他对象访问时还是原来的值 print('--类属性修改--') Person.height=190 Person.weight=80 zhangsan=Person() lisi=Person() print('修改类属性后,实例化对象xiaoli的身高{}体重{}'.format(xiaoli.height,xiaoli.weight)) print('修改类属性后,实例化对象liming的身高{}体重{}'.format(liming.height,liming.weight)) print('修改类属性后,实例化对象zhangsan的身高{}体重{}'.format(zhangsan.height,zhangsan.weight)) print('修改类属性后,实例化对象lisi的身高{}体重{}'.format(lisi.height,lisi.weight)) #总结:类属性修改后,实例化的对象访问的属性,都是修改后的值,对象修改属性后,此对象访问的属性是修改后的值 """ 构造方法: 在python类中,自带一个__init__()的特殊方法 该方法在类实例化时会自动调用,此方法可以为类实现初始化的作用 """ print('------构造方法-----') class Test(): def __init__(self,name,grade,addr): self.name=name self.grade=grade self.addr=addr print('这是Test类中的构造方法__init__') print(""" 初始化: 姓名:{} 分数:{} 地址:{} """.format(name,grade,addr)) def fun1(self): print('执行类中fun1函数') def fun2(self): print('执行类中fun2函数') t=Test('小小',100,'深圳') t.fun1() t.fun2() #类的属性,属性有类属性,实例属性,内置属性三种 print('---类属性,实例属性,内置属性---') class Demo(): school='高级中学' #类中定义的,方法以外的属性,类属性,公有 __num=1000 #类中定义的,方法以外的属性,类属性,私有 print('类中公有属性{},可以在类内和类外使用'.format(school)) print('类中私有属性{},只能在类内使用'.format(__num)) def __init__(self,name,grade,addr): self.name=name #实例属性,公有 self.__grade=grade #实例属性私有 self.addr=addr def fun1(self): print('类中fun1函数') print('类中fun1函数内使用类公有属性:{}'.format(Demo.school)) print('类中fun1函数内使用类私有属性:{}'.format(Demo.__num)) def fun2(self): print('类中fun2函数') Demo.school='修改后的高级中学' Demo.__num=1010 print('类中fun2函数内修改类公有属性{}'.format(Demo.school)) print('类中fun2函数内修改类私有属性{}'.format(Demo.__num)) def fun3(self): print('类中fun3函数') print('类中fun3函数内使用公有实例属性:{}'.format(self.name)) print('类中fun3函数内使用私有实例属性:{}'.format(self.__grade)) def fun4(self): print('类中fun4函数') self.name='猪坚强' self.__grade=10 print('类中fun4函数内修改类公有属性{}'.format(self.name)) print('类中fun4函数内修改类私有属性{}'.format(self.__grade)) student=Demo('好美丽',100,'深圳') student.fun1() print('类Demo的公有属性在类外面被调用方式一:{}'.format(student.school)) print('类Demo的公有属性在类外面被调用方式二:{}'.format(Demo.school)) student.fun2() student.school='类外面修改高级中学(方式一)' Demo.school='类外面修改高级中学(方式二)' print(student.school) print(Demo.school) student.fun3() print('类外调用公有实例属性:{}'.format(student.name)) student.fun4() student.name='类外修改公有实例属性name' print(student.name) print('类Demo的所有属性与方法:{}'.format(Demo.__dict__)) print('实例对象的所有属性和方法:{}'.format(student.__dict__)) print('打印类名:{}'.format(Demo.__name__)) """ 类的公有属性:可以在类里面任何地方被调用,上面的例子,fun1函数中就调用了类公有属性,也可以在类外面被调用。 类的公有属性调用和修改有2种方式:类名.属性名 或则 对象.属性名 类的私有属性:只能在类里面任何地方被调用,上面的例子,fun1函数中就调用了类私有属性 类的私有属性调用和修改只有一种方式:类名.属性名,fun2函数中就修改了类私有属性 公有实例属性:可以在类内任何地方被调用,上面的例子,fun3函数中就调用的公有实例属性,也可以在类外面被调用 公有实例属性调用和修改方式:在类中用self.属性名,在类外使用对象.属性名 私有实例属性:只能在类里面被调用,上面的例子,fun3函数中就调用了类私有属性 私有实例属性调用和修改方式:在类中用self.属性名,fun4函数中就修改了类私有属性 内置属性:__dict__,__name__ """
Python类和对象之--类的公有和私有属性、实例化公有和私有属性以及类和函数内置属性的应用
于 2022-09-08 11:51:36 首次发布