Python 面向对象成员
所有面向对象成员(6个)
- 变量(2)
实例变量
类变量
- 方法(3)
实例方法
类方法
静态方法
- 属性(1)
属性
变量(类中的函数)
- 实例变量(字段), 写在__init__中的变量,实例化一个对象时就设置的变量
class Person:
def __init__(self,name='小明'):
self.name=name
people1=Person()
print(people1.name)
- 类变量(静态字段)
class Person:
age=12
def __init__(self,name='小明'):
self.name=name
people1=Person()
print(people1.age)
print(Person.age)
people1.age=22
Person.age=33
方法
- 实例方法, 格式:def 方法名(self),参数中带有self,意为只有通过对象才可调用的方法
class ClassName:
def main(self):
print('hello world')
demo=ClassName()
demo.main()
- 静态方法,格式:在方法上加@staticmethod定义一个静态方法
class ClassName:
@staticmethod
def main(massage='hello world'):
print(massage)
def fun(self):
ClassName.main()
demo=ClassName()
demo.main()
ClassName.main()
- 类方法,格式:@classmethod def 函数名(cls,)至少一个参数cls
class Person:
def __init__(self,name='小明'):
self.name=name
@classmethod
def main(cls):
people1=cls()
print('hello %s'%people1.name)
demo=Person()
demo.main()
Person.main()
属性
- 属性, 在方法前加上 @property,如下:
class ClassName:
def __init__(self):
pass
@property
def main(self):
print('Hello Python')
demo=ClassName()
demo.main
类中公有和私有成员的区别
- 私用成员就是在成员前加上__,格式为__成员名
- 私用成员不可被继承
- 私有成员可以在外部用特殊方法调用和查看,但是不能进行修改.方法为:对象名._类名__成员
class Person:
__age=12
def __init__(self,name='小明'):
self.__name=name
def __fun(self):
print(Person.__age)
def fun(self):
self.__fun()
people1=Person()
print(people1.__name)
print(Person.__age)
people1.__fun()
people1.fun()
people1._Person__fun()