python Object-Oriented Programming
2020-12-13 02:25
标签:访问 icm method ack 修饰符 stat split img 默认参数 Python 类的成员、成员修饰符、类的特殊成员。 Python 类的成员 类的成员可以分为三大类: 字段、方法和属性。
一、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段需要通过对象来访问 由上图可是: 应用场景: 通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段 二、方法 方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。 普通方法:由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self; python Object-Oriented Programming 标签:访问 icm method ack 修饰符 stat split img 默认参数 原文地址:https://www.cnblogs.com/51try-again/p/10296407.html1 #注:所有成员中,只有普通字段的内容保存对象中,即:
2 #根据此类创建了多少对象,在内存中就有多少个普通字段。
3 #而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。
class Student:
#静态字段
location = ‘China‘
#初始化,也称构造方法
def __init__(self, name, age):
self.name = name
self.age = age
#直接访问普通字段
stu = student(‘Steven‘, 16)
stu.name
#直接访问静态字段
Student.location #(类名.字段名)
stu.location #(对象名.字段名)
静态字段不仅可以通过类访问,也可以通过对象来访问
但普通字段和静态字段的归属是不同的。其在内容的存储方式类似下:
类方法: 由类调用; 至少一个cls参数;执行类方法时,自动将调用该方法的类复制给cls;
静态方法:由类调用;无默认参数;import time
class TimeTest(object):
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def trans(self): #普通方法
return self.year, self.month, self.day
@classmethod #类方法
def check(cls, str_time):
‘‘‘ 判断输入的字符串日期是否合法 ‘‘‘
receive = cls(*str_time.split(‘,‘))
if int(receive.year) > 0 and (0 and (0 ):
return receive.trans()
else:
print(‘字符串日期不合法!‘)
@staticmethod #静态方法
def showtime():
return time.strftime(‘%H:%M:%S‘, time.localtime())
t = TimeTest(2019, 1, 1)
nowTime = t.showtime()
print(nowTime)
print(t.check(‘2018,12,31‘))
#结果
22:07:10
(‘2018‘, ‘12‘, ‘31‘)
文章标题:python Object-Oriented Programming
文章链接:http://soscw.com/essay/25593.html