Python面向对象语法

版权声明:本文为博主原创文章,可以随意转载,但是必须在开头标明出处。 https://blog.csdn.net/qq_29951983/article/details/82938168

文章适用人群:掌握Java语言,本文只说明python语法和Java语法不同之处,相同之处不做介绍。

继承

单继承

class Animal:
    a = 10
    def eat(self):
        print(self.a)
        print("吃")

class Dog(Animal):
    def dark(self):
        print("叫")

dog = Dog()
dog.eat()
dog.dark()

多继承

class Father:
    def f(self):
        print("f1")
class Mother:
    def f(self):
        print("f2")
class Son(Father, Mother):
    pass

s = Son()
s.f()
print(Son.mro())

关于导入模块

hello_python.py

class myClass:
    def __init__(self, *args, **kwargs):
        pass
    def p(self):
        print("hello module")
# 将类名赋值给test
test = myClass

test.py

# 导入py文件
import hello_python
# 调用hello_python.test用来创建构造函数
t = hello_python.test(100, 200, 300, 400)
t.p()

类的属性

定义属性

python定义属性不同于java,不用提前定义再使用

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def p(self):
        print(self.name)
        print(self.age)

        
al = Person("xieyaoyan", 23)
al.p()

私有变量以及私有变量访问方式

私有变量不能再类以外使用

class JustCounter:
    __secretCount = 0  # 私有变量
    publicCount = 0  # 公开变量
    def count(self):
        self.__secretCount += 1
        self.publicCount += 1

counter = JustCounter()
counter.count()
counter.count()
print(counter.publicCount)

print(counter.__secretCount)  # 报错,实例不能访问私有变量

但是私有变量可以通过特殊的方式访问

class Runoob:
    __site = "www.runoob.com"

runoob = Runoob()
print(runoob._Runoob__site)

对象名 + _类名+私有变量名

如何简单地理解Python中的if name == 'main

QQ交流群:636111544

猜你喜欢

转载自blog.csdn.net/qq_29951983/article/details/82938168
今日推荐