import sys,_functools,functools
类成员: 特性 行为
属性分归属 类属性 对象属性
对象属性 两种创建方式
1 self 对象的载体
def __init__(self,name,age):
self.name=name;
self.age=age;
2对象名.属性的形式
封装2 步
1 私有
2
与业务相关 ..
class Student:
def __init__(self):
pass
count=0;
cls 用来表明 是 类
def __new__(cls, *args, **kwargs):
print("执行 __new__",args[0],args[1])
return object.__new__(cls);
def __init__(self,name,age):
print("执行 __init__",name,age)
self.__class__.count+= 1
self.name=name;
self._age=age;
self.__address='北京'
@property
def Address(self):
return self.__address
@property
def Address(self,value):
self.__address=value;
@classmethod
def countAdd(cls):
pass
global count;
count+=1
def get_Age(self):
return self._age;
def set_Age(self,age):
if age<0 orage>100:
self._age=18
else:
self._age=age
def showInfo(self):
print("姓名{0} 年龄{1} 第{2}个对象".format(self.name,self._age,self.count))
def __str__(self):
return "姓名:{0} 年龄:{1}".format(self.name,self._age)
def __del__(self):
pass
print('对象:',self.name,'被销毁...')
@staticmethod
def goHome(cls,name,by):
print(name,"回家...",by)
zhangsan=Student("张三",20);
print(zhangsan)
li4= Student("li4",20);
print(li4)
print(id(zhangsan))
print(id(li4))
print('地址:',zhangsan._Student__address, zhangsan._age)
#del zhangsan
print(str(zhangsan))
#可以测试一个对象有多少个引用:
print(sys.getrefcount(zhangsan))
zhangsan=Student("张三",20);
Student.count+=1;
zhangsan.showInfo()
li4= Student("li4",20);
Student.count+=1;
li4.showInfo()
li4.Address='天津';
li4.__setattr__('Address','天津')
print(li4.Address)
print(dir(zhangsan))
print(zhangsan.__dir__())
print(dir(Student))
print(zhangsan.name,'属于第{}个Student 对象'.format(Student.count))
print(li4.name,'属于第{}个Student 对象'.format(Student.count))
pythonday08
最新推荐文章于 2023-09-21 18:37:42 发布