python面向对象的编程
来源:互联网 发布:淘宝自己的评论看不见 编辑:程序博客网 时间:2024/05/18 09:08
1.python中所有的类均继承自object,定义一个类
class Student(object):#括号中的内容是指父类,默认情况下为object
实例化:
bart = Student()
2.类可以起到模板的作用,所以可以在实例化的时候绑定一些属性,通过定义一个特殊的init方法,在创建实例的时候,就把name,score等属性绑上去:
class Student(object):#self表示创建实例本身,有了__init__方法创建实例时不能用空的参数,self不用传 def __init__(self, name, score): self.name = name
3.除了有一个self之外,init 和普通函数没有区别
4.封装的另一个好处是给类添加方法很方便。
5.对于内部变量如果不想被修改:
class Student(object): def __init__(self, name, score): self.__name = name#这种情况下实例变量不能被修改,切无法外部通过实例访问,private变量 self.__score = score def print_score(self): print '%s: %s' % (self.__name, self.__score) def get_name(self):#通过这种方法可以获得其值 return self.__name def get_score(self): return self.__score def set_score(self, score):#通过这种方法改变其值 self.__score = score
对于以上代码的一点说明:
1)_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。
2)双下划线开头的实例变量不能直接访问__name是因为Python解释器对外把__name变量改成了_Student__name,所以,仍然可以通过_Student__name来访问__name变量.(不同版本的python会不同)
3)变量名类似xxx的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用name、score这样的变量名。
6.获取类型的方法是,自己创建的类也可以用这种方法:
>>> type(123)<type 'int'>>>> type('str')<type 'str'>>>> type(None)<type 'NoneType'>
和type()类似的isinstance()判断的是一个对象是否是该类型本身,或者位于该类型的父继承链上。
7.获得一个对象的所有属性和方法的方法为dir()。
阅读全文
0 0
- Python面向对象的编程
- python 面向对象的编程
- Python面向对象的编程
- python面向对象的编程
- python面向对象编程
- python 面向对象编程
- python面向对象编程
- python面向对象编程
- Python 面向对象编程
- Python面向对象编程
- Python 面向对象编程
- python--面向对象编程
- python面向对象编程
- python 面向对象编程
- Python:面向对象编程
- python面向对象编程
- Python面向对象编程
- python面向对象编程
- 微分方程(常微-偏微-数学物理)——学习资料(更新............)
- 自定义View出现的空指针的懵逼
- Spring之AOP详解
- 1.2 前缀、递归、选择
- Linux中文件的压缩与解压缩
- python面向对象的编程
- Scanner对象问题
- (六)DataInputStream与DataOutputStream
- 【洛谷P1425 小鱼的游泳时间--100分】
- annotation(@Retention@Target)详解
- broadcasting in Numpy
- Java socket中IO流的关闭问题
- 模板匹配