Python 中的类
- 在Python中,通过class关键字定义一个类,比如我们需要定义一个人的类。按照 Python 的编程习惯,类名以大写字母开头
class Person(object):
def __init__(self, name, sex, age):
self.name = name
self.sex = sex
self.age = age
init()方法,当创建实例时,init()方法被自动调用,类似Java中的构造函数
class Person{
private String name;
private String sex;
private int age;.
Person(String name, String sex, int age){
this.name = name;
this.sex = sex;
this.age = age;
}
}
- Python 中类属性
class Person(object):
localtion = 'Asia' #类属性
__localtion = 'Asia' #双下划线__:私有类属性 ,类似Java中的private
def __init__(self, name, age, localtion):
self.name = name
self.age = age
self.localtion = localtion #实例属性
- 实例化后的类共享同一类属性,localtion = ‘Asia’ 如果存在同名实例属性,实例属性的优先级是要高于类属性的
- Python 中类的实例化
Python中类实例化直接赋值即可,不用像Java一样使用new。
双下划线__:私有属性 ,类似Java中的private, 如果想要在外部访问操作私有实例属性只能定义实例方法,类似Java中的get/set 方法。
如果想要在外部访问操作私有类属性只能定义类方法,
和实例方法不同的是,这里有两点需要特别注意:
类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法,类方法的第一个参数将传入类本身,通常将参数名命名为 cls
student = Person("LLL",15,"beijing")
class Person(object):
__localtion = 'Asia'
def __init__(self, name, age, localtion):
self.__name = name
self.__age = age
self.__localtion = localtion
def set_name(self, name):
self.__name = name
def get_name(self):
return self.__name
def set_age(self, age):
self.__age = age
def get_age(self):
return self.__age
def set_localtion(self, localtion):
self.__localtion =localtion
def get_localtion(self):
return self.__localtion
@classmethod
def set_localtion(cls, localtion):
cls.__localtion = localtion
@classmethod
def get_localtion(cls):
return cls.__localtion
- Python继承类
在定义继承类的时候,有几点是需要注意的:
1).class Student()定义的时候,需要在括号内写明继承的类Person
2).在__init__()方法,需要调用super(Student, self).init(name, gender),来初始化从父类继承过来的属性
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
class Student(Person):
def __init__(self, name, gender, score):
super(Student, self).__init__(name, gender)
self.score = score
student = Student('Alice', 'girl', 100)
print(student.name) # ==> Alice
print(student.gender) # ==> girl
print(student.score) # ==> 100
- Python获取对象信息
1). 通过isinstance()方法,可以判断一个对象是否是某个类型
2). 通过type()函数,可以获得变量的类型
3).通过dir()方法,可以获取变量的所有属性