编程通常分为面向过程和面向对象两类,最早的C语言、Pascal语言、Basic语言等都是面对过程的,后来的C++、Python等都是面向对象的。简言之,两者的最大区别在于后者对各种表达式有了抽象和归类。
比如,VB中将字符串改为大写,用UCase()函数,而这个“凭空而降”的UCase名称对于非英语国家的人来说未必能轻易想得到;而在Python中,它被归类于字符串类,大不了从上到下找一下,看到其中的upper()函数就猜到它是转为大写了。
和C++中类似,类可以继承,函数可以继承、重载。我们已经使用过很多类,比如整数类、字符类等。
x='abcd'
print(x.upper())
定义和使用类,如:
class myClass:
myint=100
def setini(self,value):
self.myint=value
def showini(self):
print('self.myini=',self.myint)
print('类加载完毕!')
x=myClass()
print(x.myint)
x.setini(21)
x.showini()
用dir(myClass)可以列出类的属性和方法:
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'myint', 'setini', 'showini']
其中,以双下划线开头和结尾的,是Python内置属性。可以用双下划线打头命名属性和方法,它们都变为私有,不可在类外使用。