2019年7月8日 对象与实例属性
class MyData: pass x=10#在全局作用域内声明变量 y=20 MyData.x=1#在局部作用域内声明变量 MyData.y=2 print(MyData.x,MyData.y,x,y)
3个country位置 注意作用域的概念
country='最外层的country:china' class Chinese: 'chinese people 的类' dang='GCD' #定义类属性 print('1.先在Class中寻找,如果找不到就找最外层', country) country='Class中的country:Japan' print('2.先在Class中寻找,如果找不到就找最外层', country) def __init__(self,name,age,gender):#self 代表自身,初始化函数,class 中只要把名字定义为__init__,自动去运行,函数必须要有self 参数 # self.country=input('请输入国家:')#不推荐写在init内部,写在外面 self.mingzi=name #定义类名字属性,并封装到self中 self.nianji=age self.xingbie=gender #自动return country='init中的country' print('3.这就是一个普通变量,不是类中的属性,不需要遵从类的作用域,只需要寻找自身所在的域,不会到class中寻找,如果找不到,则直接到最外层域中:', country) def sui_di_tu_tan(self):#将自身传递给参数 print('%s随地吐痰'%self.mingzi) def cha_dui(self): print('%s插到了前面'%self.mingzi) def eat_food(self,food): print('%s正在吃%s'%(self.mingzi,food)) p3=Chinese('xxx',77,'man') p3.dang='GMD' #在p3的字典内做更改 print('类',Chinese.dang)#类的字典内没做更改 print('实例',p3.dang) print(p3.__dict__)
》》》
1.先在Class中寻找,如果找不到就找最外层 最外层的country:china
2.先在Class中寻找,如果找不到就找最外层 Class中的country:Japan
3.这就是一个普通变量,不是类中的属性,不需要遵从类的作用域,只需要寻找自身所在的域,不会到class中寻找,如果找不到,则直接到最外层域中 init中的country
类 GCD
实例 GMD
{'mingzi': 'xxx', 'nianji': 77, 'xingbie': 'man', 'dang': 'GMD'}
class Chinese: country='china' l=[1,2,3,4] def __init__(self,name): self.name=name p4=Chinese('ZYK') print(p4.l) # p4.l=[4,3,2,1]#如果这里有这行,则下列的append是在操作这一行 p4.l.append(5)#使用这种方法更改,是更改的类,因为P4.l调用的是类中的l,如果是p4.l=[4,3,2,1]代表的是新增了个p4的赋值,append不是赋值 print(Chinese.l)
》》》
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
class School: '学校' zhucedi='China' def __init__(self,name,address,type): self.name=name self.address=address self.type=type def money(self,money): print('%s的学费是%s元'%(self.name,money)) s1=School('清华','北京','大学') s2=School('上中','上海','高中') print(s1.__dict__,s2.__dict__) s1.money(4444) s2.money(3333) class Teacher: '老师' bianzi='正式工' def __init__(self,name,school,money,man,lesson): self.name=name self.school=school self.money=money self.man=man self.lesson=lesson def shangke(self,huibuhui): print('%s老师%s上课拖堂'%(self.name,huibuhui)) t1=Teacher('zyk','LDZX',555,'MAN','Music') t1.shangke('会')
{'name': '清华', 'address': '北京', 'type': '大学'} {'name': '上中', 'address': '上海', 'type': '高中'}
清华的学费是4444元
上中的学费是3333元
zyk老师会上课拖堂
【推荐】AI 的力量,开发者的翅膀:欢迎使用 AI 原生开发工具 TRAE
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何正确实现一个 BackgroundService
· 抽象与性能:从 LINQ 看现代 .NET 的优化之道
· AI 时代,为什么我们还有必要写博客?
· 行业思考:不是前端不行,是只会前端不行
· C#高级GDI+实战:从零开发一个流程图
· 记一次酣畅淋漓的js逆向
· 一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析
· 被 DDoS 攻击的一夜
· 如何正确实现一个 BackgroundService
· 上周热点回顾(7.28-8.3)